ESLint Flat Config
別名: flat config / eslint.config.js / フラットコンフィグ
ESLint v9 で既定となった新しい設定方式。eslint.config.js / .mjs / .cjs 一本に設定オブジェクトの配列を export し、プラグインも import して直接渡す。
#eslint#flat-config#config#v9#migration
公開:
定義
Flat Config は ESLint v9 で既定となった新しい設定方式。
プロジェクトルートの eslint.config.js / eslint.config.mjs / eslint.config.cjs に、設定オブジェクトの配列を export する。
従来の .eslintrc.* と .eslintignore を 1 ファイルに統合し、プラグインは import してオブジェクトとして直接渡す形に変わった。
詳細
配列の各要素は files / ignores / plugins / rules / languageOptions を持つ独立した設定単位で、後ろに書いたものほど優先されるマージ規則を採る。ignores 単独のオブジェクトはグローバル ignore として作用する。extends のような暗黙的合成は廃止され、必要な設定は js.configs.recommended のように 値として展開 する形になった。
v8 系で先取りするには環境変数 ESLINT_USE_FLAT_CONFIG=true を付ける。
移行手順は migration guide を参照。
よくある誤解
.eslintrc.jsonも併用できる: v9 では読まれない。
残しておくと混乱の元なので削除する。plugins: ["foo"]と書ける: 文字列指定は廃止。importしてオブジェクトでplugins: { foo: pluginFoo }の形に書き換える。
関連
読み込みが効かない症状は Flat Config が読み込まれない、ignore の挙動差は ignore 指定が無視されない を参照。