【いーえすりんと】

ESLint とは?

最終更新:
💡 コードの「自動校正ツール」—ルールに合わない書き方を指摘

JavaScriptのコードから問題のある書き方を見つけて、修正を助ける静的解析ツール(リンター)。プラグインやパーサーを足すとTypeScriptなどにも使える。

📌 このページのポイント
ESLint(コード品質チェック) const x = 1; var y = 2 if(x == y){ console.log(x) } ソースコード ESLint ルールに基づき 静的解析 🔍 AST解析 検出結果 no-var: varは使用禁止 eqeqeq: ===を使おう no-console: console検出 1 error, 2 warnings 設定ファイル(eslint.config.js)でルールを設定 "error" → 終了コード1 "warn" → 警告のみ "off" → チェックしない
ESLintのイメージ
ひよこ ひよこ
ESLintって何をチェックするの?
ペンギン先生 ペンギン先生
「ルール」という単位でチェックするよ。たとえば、使っていない変数(no-unused-vars)、returnの後ろにあって実行されないコード(no-unreachable)、varではなくletやconstを使う(no-var)、==ではなく===を使う(eqeqeq)など。どのルールを有効にするかは設定ファイルで決めるんだ。エディター用の拡張機能を入れると、編集中に結果を見られるよ
ひよこ ひよこ
おもしろい!Prettierとの違いは?
ペンギン先生 ペンギン先生
ESLintはコードの問題を見つけるリンター、Prettierは見た目を整えるフォーマッターだよ。ESLintは2023年11月のv8.53.0で、セミコロン(semi)やインデント(indent)といった見た目のルールを非推奨にして、整形には専用のフォーマッターを使うことを勧めているんだ。ESLintで見た目もそろえたい場合は、別パッケージの@stylisticに移ったルールを使うよ
ひよこ ひよこ
設定ファイルはどう書くの?
ペンギン先生 ペンギン先生
プロジェクトにeslint.config.js(または.mjs、.cjsなど)を置くよ。これがFlat Configと呼ばれる形式なんだ。以前の.eslintrcはv9では切り替えれば使えたけれど、v10.0.0からは使えなくなった。ルールごとに強さも決められて、offは無効、warnは警告(終了コードに影響しない)、errorはエラー(終了コードが1になる)だよ。CIでerrorを検知して止める、という使い方ができるね
ひよこ ひよこ
TypeScriptでも使える?
ペンギン先生 ペンギン先生
使えるよ。ESLint本体はJavaScript用のリンターだけど、パーサー(コードを解析する部品)やプラグインを差し替えられる作りになっているんだ。typescript-eslintを入れるとTypeScriptのコードを扱えて、recommendedやstrictといった共有設定も用意されているよ
ひよこ ひよこ
Biomeって何?
ペンギン先生 ペンギン先生
フォーマッターとリンターを1つにまとめた、Rust製のツールだよ。公式サイトは、フォーマッターがPrettierと97%互換で、171,127行・2,104ファイルの整形でPrettierより約35倍速いと説明している。リンターのルールにはESLintやtypescript-eslintに由来するものが含まれるんだ。ただ、ESLintのプラグインやルールがすべて使えるわけではないから、今使っているルールが対応しているかを確かめてから選ぼう
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ESLint」って出てきたら「JavaScriptのコードをルールに沿ってチェックするツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「ESLint」 = イーエスリント
💬 ESはECMAScript(JavaScriptの仕様名)の略として使われる表記で、lintはコードの問題点を見つけるツールの呼び名だよ

参考資料

← 用語集にもどる