はじめに
ESLintはJavaScriptやTypeScriptのコード品質を保つためのツールですが、最近のアップデートで設定方法が変わり、一部のオプションが削除された。npm eslint --init
コマンドを実行して選択肢が変わっており、変なハマり方をしたため、調査結果を備忘として記載します。
期待した選択肢
? How would you like to use ESLint? (Use arrow keys)
To check syntax only
To check syntax and find problems
❯ To check syntax, find problems, and enforce code style
最新の選択肢
? How would you like to use ESLint? (Use arrow keys)
To check syntax only
❯ To check syntax and find problems
ESLintを8.0.0まで落としたところ、選択肢が復活。どこで変更が加えられたのか気になったため、調査しました。
ESLintのフォーマットに関するルールの廃止について
フォーマットに関するルールがESLintから削除された様子。
メンテナンスの負荷軽減が主な理由。ただ、2023年10月以前のバージョンに戻してもenforce code style
が選べない問題は解決しなかった。
バージョンを特定
過去のバージョンで調査したところ、以下の状況。
- 8.6 → 適用されていない
- 8.7 → 適用されている
関連するコミットを確認したところ、以下の変更が行われていた。
initコマンドはversion 8.7でcreate-configに移管され、create-configの最新版が自動で呼ばれるようになった模様。
create-configの変更
enforce code style
の選択肢がなくなったのは以下のコミット。
2024年4月28日以降のようですが、8.7以降のESLintではcreate-configの最新版を使用するようになっている。ESLintのバージョンを8.6以前に戻せば古い選択肢(enforce code style
がある)が表示され、8.7以降ならば新しい選択肢(enforce code style
がない)が表示される、ということと理解しました。
最後に
このガイダンスに沿って作成されたファイルをそのまま使うわけではないかと思いますが、書籍や記事を参考にしていると、バージョンを揃えても異なるガイダンスが表示されるのは戸惑うだろうなと思い記事化しました。
フロントエンドについてはまだ勉強中のため、何か不備等があればコメントで指摘してもらえますと幸いです。