Closed3
eslintのignoresでファイルが除外されない?そんなときに調べたこと
Flat Configを使って設定する場合の話。
import js from "@eslint/js"
const { FlatCompat } = require("@eslint/eslintrc");
const compat = new FlatCompat({
baseDirectory: __dirname,
});
const prettierConfig = compat.extends(
"plugin:prettier/recommended",
);
const config = {
files: ["**/*.js", "**/*.ts"],
ignores: ["**/public/assets/**/*"],
...
}
export module [
js.configs.recommended,
config,
...prettierConfig
]
まあ、こういう設定になっているものがあるとする。
この時、自分たちのプロダクトで使う設定として定義したconfig
にignoresを書いても、そのignoresを書いたブロックの処理のみignoresが適用され、pluginとして設定されたものに対しては当然ignoresは効きません。DEBUG=eslint:* npx eslint .
とかデバッグオプションを付けて実行すると、プラグインでの処理中に普通にファイルが読み込まれていることがわかります。
これは明確にeslintのDocsに記載があって、
your eslint.config.js file, if an ignores key is used without any other keys in the configuration object, then the patterns act as global ignores.
つまり、ignoresだけのブロックを定義してくれ、って話になります。
つまり冒頭にあった、設定をこうすればよいんじゃ。
import js from "@eslint/js"
const { FlatCompat } = require("@eslint/eslintrc");
const compat = new FlatCompat({
baseDirectory: __dirname,
});
const prettierConfig = compat.extends(
"plugin:prettier/recommended",
);
const config = {
files: ["**/*.js", "**/*.ts"],
...
}
const ignoreConfig = {
ignores: ["**/public/assets/**/*"]
}
export module [
ignoreConfig,
js.configs.recommended,
config,
...prettierConfig
]
これを記載することで、すべての設定ブロックに対して、ignoresがグローバルに効くようになります。
このスクラップは4ヶ月前にクローズされました