ESLint v8.25.0 以降から .eslintignore は廃止されました。
今後はESLintの設定ファイルの ignores で指定することになります。
以下は ESLint v8.25.0 より古いバージョンの記事になります。
ESLintを使っていて割と細かい設定が必要なのでメモしておく.
.eslintignore と .gitignore は同じ様な役割だが扱い方が全く違います. この違いを分かってないと期待した動作にはなりません. そこで具体的な違いを整理しました.
TL;DR
-
.eslintignoreはプロジェクトルートに配置する.- eslintrcで
"root": trueを指定して同じディレクトリに配置するといい.
- eslintrcで
-
.eslintignoreはサブディレクトリには配置しない - Dotファイル(
.babelrc.js等)もチェック対象にするなら.eslintignoreに!.*.jsを追記する
違い
ESLint(v6.1.0)で確認したところ以下の違いがありました.
Gitの .gitignore はとても柔軟で以下の様に優先度をつけています
- 複数のディレクトリに配置できる
- 配置したディレクトリの設定が優先度が高く評価される
- デフォルトの設定は
.gitignore_globalで管理する
一方、ESLintの .eslintignore 以下の様になっています.
- eslintを実行したカレントディレクトリの
.eslintignoreのみ使用.- 設定を上書きしたり親ディレクトリをさかのぼって設定を探索することはない.
- デフォルトではdotfiles(
.*) は除外されている.-
.babelrc.jsとかは無視されので設定を追加する必要がある.
-
上記の様な違いがあるため自分の場合は2つの対応をすることにしました.
- プロジェクトルート(eslintrcで
"root": trueを指定して同じディレクトリ)に配置することでトラブル回避. - JSで書かれた設定(dotfiles)周りもチェックしたいので
.eslintignoreに!.*.jsを追記.
他にも一度はESLintドキュメントにある程度書かれています.
自分の場合は .gitignore みたいなものだろうとドキュメントを眺めただけだったので、気がつきませんでした 🙈