LoginSignup
17
11

More than 1 year has passed since last update.

.eslintignore の配置場所は気をつけた方がいい

Last updated at Posted at 2019-08-23

ESLint v8.25.0 以降から .eslintignore は廃止されました。
今後はESLintの設定ファイルの ignores で指定することになります。
以下は ESLint v8.25.0 より古いバージョンの記事になります。

ESLintを使っていて割と細かい設定が必要なのでメモしておく.

.eslintignore と .gitignore は同じ様な役割だが扱い方が全く違います. この違いを分かってないと期待した動作にはなりません. そこで具体的な違いを整理しました.

TL;DR

  • .eslintignore はプロジェクトルートに配置する.
    • eslintrcで "root": trueを指定して同じディレクトリに配置するといい.
  • .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 みたいなものだろうとドキュメントを眺めただけだったので、気がつきませんでした 🙈

17
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
11