@wordpress/scriptsの.eslintrcをeslint.config.jsに置き換えてみるテスト
たまたまESLintについて調べていたときに、このような記事を見ました。
eslintrc removed in ESLint v10.0.0
まじかよ!!!!というわけで、テストがてらいつものローカル環境の.eslintrc
をeslint.config.js
に置き換えてみることにしました。
結論
結論から言うと、@wordpress/scripts
を用いてLintをしているのならまだ.eslintrc
のままでよさそうです。というかeslint.config.js
が構成形式としてリストされていないので認識されてないような感じです。
関連するissueを見つけたので、興味のある方はどうぞ。
別でESLintのパッケージをインストールして使う分には関係ないです。
わざわざ@wordpress/scripts
を使って諸々こなしているので、このためだけにESLintを入れるのは面倒が増えるだけだなあと思うので、私はとりあえず@wordpress/scripts
がサポートするまでは.eslintrc
で使うと思います。
動向に引き続き注視していきます。
やってみたメモ
これより以下はやってみたメモです。どういう流れで結論に至ったのかの私の思考回路が丸見えになります。
WordPressの公式のドキュメントではまだeslint.config.js
には言及されてなさそう。
とりあえず書き方もなにもわからないのでESLintの公式ドキュメントを確認しつつ進めます。
シンプルに置き換えてみる
import recommended from '@wordpress/eslint-plugin/recommended';
export default [ ...recommended ];
まずはドキュメント通りに置き換えてみます。
これでwp-scripts lint-js
を走らせてみると
Invalid option '--eslintrc' - perhaps you meant '--ignore'?
You're using eslint.config.js, some command line flags are no longer available. Please see https://eslint.org/docs/latest/use/command-line-interface for details.
(訳)
無効なオプション '--eslintrc' - おそらく '--ignore' のことですね?
あなたが使っているeslint.config.jsでは、いくつかのコマンドラインフラグが使えなくなっています。詳しくは https://eslint.org/docs/latest/use/command-line-interface をご覧ください。
これはLintを実行してるコマンド側の問題っぽいですね。おそらくFlat configにまだ対応していないのでしょう。(対応してたらおそらく公式ドキュメントで書き方が出てるはずなので)
FlatCompatを使ってみる
対応してないのであれば対応してない用の書き方をします。
ESLintのドキュメント通り、パッケージを追加でインストールします。
npm install @eslint/eslintrc --save-dev
import { FlatCompat } from '@eslint/eslintrc';
const compat = new FlatCompat();
export default [
...compat.extends( 'plugin:@wordpress/eslint-plugin/recommended' ),
];
これで動くかチェックするため、またwp-scripts lint-js
を叩きます。
Invalid option '--eslintrc' - perhaps you meant '--ignore'?
You're using eslint.config.js, some command line flags are no longer available. Please see https://eslint.org/docs/latest/use/command-line-interface for details.
まあやっぱり同じエラーですね。ここで@wordpress/scripts
のファイルとissueを確認します。これを最初にやればよかった。
eslint.config.js
……ないね…。
サポート……してないね……。.eslintrc
もeslint.config.js
も動かないんですけど!みたいな稀な状況でもないし、とりあえず.eslintrc
のまま様子見でよさそうかな。(PR出すほどこのあたりの挙動理解できてないし…😭)
Discussion