eslintコマンドを実行した際に発生した 「"path" argument must be of type string. Received an instance of Array」エラーの対処

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
eslintコマンドを実行した際に発生する "path" argument must be of type string.エラーの対処についてメモしました。
経緯
reactとmobx-state-treeを利用しているプロジェクトがあり
そのプロジェクトのパッケージを最新にアップデートしリントチェックしたところ発生しました。
環境
- Yarn 1.22.4
- Node.js 14.15.3
- eslint 7.29
発生したエラー
yarn eslint --fix
コマンドを実行するとエラーになりリントが動かないという状況が発生しました。
zsh$ yarn eslint --fix src/**/*.tsx
yarn run v1.22.10
$ /Users/XXXX/project/node_modules/.bin/eslint --fix src/**/*.tsx
Oops! Something went wrong! :(
ESLint: 7.29.0
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received an instance of Array
at validateString (internal/validators.js:124:11)
at Object.isAbsolute (path.js:1029:5)
at isFilePath (/Users/XXXX/project/node_modules/@eslint/eslintrc/lib/config-array-factory.js:131:14)
at /Users/XXXX/project/node_modules/@eslint/eslintrc/lib/config-array-factory.js:905:17
at Array.reduce (<anonymous>)
at ConfigArrayFactory._loadPlugins (/Users/XXXX/project/node_modules/@eslint/eslintrc/lib/config-array-factory.js:904:22)
at ConfigArrayFactory._normalizeObjectConfigDataBody (/Users/XXXX/project/node_modules/@eslint/eslintrc/lib/config-array-factory.js:725:44)
at _normalizeObjectConfigDataBody.next (<anonymous>)
at ConfigArrayFactory._normalizeObjectConfigData (/Users/XXXX/project/node_modules/@eslint/eslintrc/lib/config-array-factory.js:665:20)
at _normalizeObjectConfigData.next (<anonymous>)
error Command failed with exit code 2.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
エラーについて
エラーの内容はパスは文字列型を指定する必要があるというエラーです。
zshTypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received an instance of Array
ファイルなどが明示されている通常のlintのエラーではなかったため悩みました。
原因
mobxのデコレーター(@XXXみたいな書き方)を利用するのに必要な @babel/plugin-proposal-decorators
プラグインの設定が
なぜかeslint設定ファイルのpluginへ記載されていたことが原因でした。
javascript// .eslintrc.js
module.exports = {
plugins: [
["@babel/plugin-proposal-decorators", { legacy: true }],
],
}
プラグインの設定を削除して解決
原因の部分の下記を削除して解決しました。
javascript// .eslintrc.js
module.exports = {
plugins: [
["@babel/plugin-proposal-decorators", { legacy: true }],
],
}
そもそもなぜ@babel/plugin-proposal-decorators
の設定がeslintrcにあったかの確認(.babelrcと設定を間違えた?)が必要だなと思ったのと、オブジェクトが渡っていたことでパスのエラーが出ていたと理解しました。
- article
ESLint Flat Config 完全理解:eslint.config.js 時代の設計指針
- article
ESLint と Prettier の競合を完全解決:eslint-config-prettier 徹底解説
- article
ESLint でアクセシビリティを向上させる a11y ルール活用術
- article
Lerna × ESLint:マルチパッケージ環境での効率的な Lint 運用
- article
ESLint ルールの重要度設定:error・warn・off の使い分け戦略
- article
Angular 開発者必見!ESLint で Angular プロジェクトを品質管理
- article
Gemini CLI のアーキテクチャを図解で理解:入力 → 推論 → 出力のデータフロー全貌
- article
Pinia アーキテクチャ超図解:リアクティビティとストアの舞台裏を一枚で理解
- article
FFmpeg アーキテクチャ超図解:demuxer→decoder→filter→encoder→muxer の流れを一望
- article
Obsidian 2025 年ロードマップ総ざらい:Properties/Canvas/Live Preview の現在地
- article
ESLint Flat Config 完全理解:eslint.config.js 時代の設計指針
- article
Nuxt レンダリング戦略を一気に把握:SSR・SSG・ISR・CSR・Edge の最適解
- blog
iPhone 17シリーズの発表!全モデルiPhone 16から進化したポイントを見やすく整理
- blog
Googleストアから訂正案内!Pixel 10ポイント有効期限「1年」表示は誤りだった
- blog
【2025年8月】Googleストア「ストアポイント」は1年表記はミス?2年ルールとの整合性を検証
- blog
Googleストアの注文キャンセルはなぜ起きる?Pixel 10購入前に知るべき注意点
- blog
Pixcel 10シリーズの発表!全モデル Pixcel 9 から進化したポイントを見やすく整理
- blog
フロントエンドエンジニアの成長戦略:コーチングで最速スキルアップする方法
- review
今の自分に満足していますか?『持たざる者の逆襲 まだ何者でもない君へ』溝口勇児
- review
ついに語られた業界の裏側!『フジテレビの正体』堀江貴文が描くテレビ局の本当の姿
- review
愛する勇気を持てば人生が変わる!『幸せになる勇気』岸見一郎・古賀史健のアドラー実践編で真の幸福を手に入れる
- review
週末を変えれば年収も変わる!『世界の一流は「休日」に何をしているのか』越川慎司の一流週末メソッド
- review
新しい自分に会いに行こう!『自分の変え方』村岡大樹の認知科学コーチングで人生リセット
- review
科学革命から AI 時代へ!『サピエンス全史 下巻』ユヴァル・ノア・ハラリが予見する人類の未来