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
みたいなものだろうとドキュメントを眺めただけだったので、気がつきませんでした 🙈