ESLintrc ジェネレーター
このジェネレーターは、ブラウザかNodeの環境、TypeScriptサポート、Reactサポートという4つの選択肢から、すぐ使える.eslintrc.json設定を作成します。eslint:recommended、選択に応じたTypeScriptまたはReactのプラグイン、そして妥当なルールのオーバーライドを組み込むので、結果をそのままプロジェクトに貼り付けられます。
ESLint設定を生成する方法
-
1
環境を選ぶ
コードがブラウザ、Node.js、またはその両方で動くかを選びます。ジェネレーターは対応する`env`の項目と`es2022`を設定します。
-
2
TypeScriptを有効にする
TypeScriptにチェックを入れると、`@typescript-eslint/parser`と推奨のTypeScriptプラグインが追加されます。
-
3
Reactを有効にする
Reactにチェックを入れると、推奨プリセット付きの`eslint-plugin-react`が追加されます。
-
4
生成する
ボタンをクリックすると、読みやすく整形されたJSONの設定が作成されます。
-
5
プロジェクトにコピーする
出力を`.eslintrc.json`に貼り付け、設定が参照するプラグインをインストールします。
生成される設定の内容
ジェネレーターは常にeslint:recommendedから始め、選択内容に応じた項目だけを追加します。
browserやnodeを含むenv、さらにes2022- TypeScriptがオンの場合は
@typescript-eslint/parserとplugin:@typescript-eslint/recommended - Reactがオンの場合は
plugin:react/recommended warnに設定されたno-consoleとno-unused-vars
出力は従来の.eslintrc.json形式のシンプルなJSONオブジェクトで、貼り付けて独自のルールを追加できます。
フラット設定と従来設定の比較
ESLint 9では.eslintrc.*形式が非推奨となり、フラット設定(eslint.config.js)が推奨になりました。主な違いは次のとおりです。
| 観点 | 従来(.eslintrc) | フラット(eslint.config.js) |
|---|---|---|
| 形式 | JSON、YAML、CommonJS | ESMまたはCommonJSのJavaScriptモジュール |
| 継承 | extends: ["plugin:react/recommended"] |
配列へ展開:...reactPlugin.configs.recommended |
| オーバーライド | globパターンを使うoverrides配列 |
エクスポート配列内の複数のオブジェクト |
| グローバル変数 | env: { browser: true } |
明示的なインポートを伴うlanguageOptions.globals |
| 除外 | .eslintignoreファイル |
設定配列内のignoresフィールド |
新規プロジェクトはフラット設定を使うべきです。既存プロジェクトは10.x系まで従来設定のままでも構いませんが、移行を推奨します。
プラグインのエコシステム
典型的なReact/TSプロジェクトのプラグイン。
@typescript-eslint/eslint-plugin
@typescript-eslint/parser
eslint-plugin-react
eslint-plugin-react-hooks
eslint-plugin-jsx-a11y
eslint-plugin-import
eslint-config-prettier
そこそこ意見の強い1つの構成でも6パッケージです。ジェネレーターは選択したプラグインだけを追加するので、設定が参照するものだけをインストールすれば済みます。
Prettierとの共存
Prettierは整形を担当し、ESLintは整形以外の正しさとスタイルを担当します。競合を避けるには、次のようにします。
eslint-config-prettierをインストールし、extends/configの最後の項目として追加します。- これはPrettierの出力と競合するすべてのESLintルールをオフにします。
- Prettierは別途実行します(エディタの保存時、pre-commitフック、CI)。
新規プロジェクトではeslint-plugin-prettierは使わないでください。ESLintの中でPrettierを実行するため、ESLintを遅くします。2つのツールは分けましょう。
ルール調整のヒント
- 緩く始めて、徐々に厳しくする。 エラーより先に警告を有効にします。
- テスト用にオーバーライド。 テストファイルでは
no-unused-expressionsを緩め、Jestのグローバルを使えるようにすることがよくあります。 - スクリプト用にオーバーライド。 ビルドスクリプトでは、
env: nodeをグローバルに追加せずにNodeのグローバルが必要になることがあります。 - オーバーライドにコメントを。 どのルールのオーバーライドにも、理由を説明するコメントを付ける価値があります。
エディタに合わせた設定
VS CodeにはESLint拡張機能のインストールと設定が必要です。保存時の自動修正のために、ワークスペース設定に次を追加してください。
{
"editor.codeActionsOnSave": { "source.fixAll.eslint": "explicit" },
"eslint.validate": ["javascript", "typescript", "javascriptreact", "typescriptreact"]
}
よくある質問
新規プロジェクトにはフラット設定(eslint.config.js)です。このジェネレーターは従来の.eslintrc.json形式を出力しますが、これはESLintがレガシーモードでネイティブに読み込める形式です。移行時に何が変わるかは上の比較表を参照してください。
TypeScriptを使っているなら、はい。@typescript-eslint/parserと@typescript-eslint/eslint-pluginが、TypeScriptを理解したリンティングを有効にします。型を考慮したルール(構文だけでなく)には、さらにパーサーにproject: './tsconfig.json'を設定してください。
たいていはCIで開発依存が不足しているためです。@typescript-eslint/*、プラグイン、ESLintのバージョンがローカルとCIで一致していることを確認してください。lockfileを尊重するため、CIではnpm installではなくnpm ciを使います。
いいえ。選択内容は設定を生成するためだけに使われ、保存もされず、第三者と共有されることもありません。
関連ツール
ASCII表リファレンス
0から127までの完全なASCII表です。NUL、LF、DELなどの制御コードを含め、各文字の10進数、16進数、8進数、2進数、HTML数値文字参照を表示します。
HTML文字参照
HTMLエンティティの検索可能なリスト、その名称コードおよび数値コード、および特殊文字や記号のワンクリックコピー機能を提供します。
キーボードショートカット一覧
macOS、Windows、Linux向けに、VS Code、Chrome、GNU Readlineを使うBashの公式資料に基づく既定ショートカットを検索できます。
EditorConfig ジェネレーター
インデントのスタイルとサイズ、改行コード、文字コード、空白ルールを指定して .editorconfig ファイルを生成し、IDE やエディタをまたいで書式を統一できます。
メールアドレス検証ツール
メールアドレスを検証します。RFC 5322構文チェック、MXレコードのライブ確認に加え、ローカル部、ドメイン、長さの詳細を表示します。メールは送信されません。
HTML フォーマッター
ブラウザ内で HTML を 2 または 4 スペースで整形します。HTML はアップロードも検証もされません。
このツールは他の言語でも利用できます
- Generador de ESLintrc [ES]
- เครื่องสร้าง ESLintrc [TH]
- ESLintrc-generator [NL]
- ESLintrc生成器 [ZH]
- ESLintrc 생성기 [KO]
- Générateur d'ESLintrc [FR]
- ESLintrc-generator [SV]
- Generator ESLintrc [ID]
- Gerador de ESLintrc [PT]
- ESLintrc-Generator [DE]
- ESLintrc Üreticisi [TR]
- Generator .eslintrc [PL]
- ESLintrc Generator [EN]
- Bộ tạo ESLintrc [VI]
- مولد ESLintrc [AR]
- Generatore ESLintrc [IT]
- Генератор ESLintrc [RU]