ESLintで特定のファイルやフォルダを対象から除外する方法について解説します。
目次
.eslintignoreを作成する
.eslintignore
を作成し、そこに対象から除外したいファイルやフォルダを書きます。
config.js
test/
上記の例では、config.js
というファイルと、test
フォルダを対象から除外しています。
実際に試してみる
実際にどう動くのか確認しましょう。
package.json
package.json
は次のとおりです。eslintをインストールし、eslint
コマンドを実行するスクリプトを追加しています。
{
"name": "node_eslint",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"lint": "eslint ./"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"eslint": "^8.12.0"
}
}
.eslintrc.json
.eslintrc.json
は必要最小限にしています。
{
"extends": [
"eslint:recommended"
]
}
プロジェクトの構造
プロジェクトの構造は以下のようになっており、用意した4つのJSファイルはすべてLintでエラーが検出されます。
$ tree
.
├── file1.js
├── file2.js
├── dir3
│ └── file3.js
├── dir4
│ └── file4.js
├── .eslintrc.json
├── package-lock.json
└── package.json
ESLintを実行する
最初に.eslintignore
を用意せずに実行してみます。
$ npm run lint
> node_eslint@1.0.0 lint
> eslint ./
/Users/t0k0sh1/workspace/node_eslint/dir3/file3.js
1:10 error 'file3' is defined but never used no-unused-vars
2:1 error 'console' is not defined no-undef
/Users/t0k0sh1/workspace/node_eslint/dir4/file4.js
1:10 error 'file4' is defined but never used no-unused-vars
2:1 error 'console' is not defined no-undef
/Users/t0k0sh1/workspace/node_eslint/file1.js
1:10 error 'file1' is defined but never used no-unused-vars
2:1 error 'console' is not defined no-undef
/Users/t0k0sh1/workspace/node_eslint/file2.js
1:10 error 'file2' is defined but never used no-unused-vars
2:1 error 'console' is not defined no-undef
✖ 8 problems (8 errors, 0 warnings)
プロジェクト直下の2ファイルもフォルダ内の2ファイルもエラーになっていることがわかります。
次に.eslintignore
を作成し、プロジェクト直下の1ファイルと2つのファイルのうちの1つを除外してから再度実行してみましょう。
file2.js
dir4/
先ほどと同様に実行してみると、除外したファイルとフォルダ内のファイルがエラーに表示されなくなりました。
$ npm run lint
> node_eslint@1.0.0 lint
> eslint ./
/Users/t0k0sh1/workspace/node_eslint/dir3/file3.js
1:10 error 'file3' is defined but never used no-unused-vars
2:1 error 'console' is not defined no-undef
/Users/t0k0sh1/workspace/node_eslint/file1.js
1:10 error 'file1' is defined but never used no-unused-vars
2:1 error 'console' is not defined no-undef
✖ 4 problems (4 errors, 0 warnings)
node_modulesの除外は不要
実行してみるとわかりますが、node_modules
の除外は不要です。
そのため、対象としたいフォルダ内に除外したいファイルやフォルダがない場合は.eslintignore
を作成する必要はありません。