ウェブサイト | ESLint を構成する |ルール | ESLint に貢献する |バグを報告する |行動規範 |ツイッター |不和 |マストドン
ESLint は、ECMAScript/JavaScript コードで見つかったパターンを識別してレポートするためのツールです。多くの点で、これは JSLint および JSHint に似ていますが、いくつかの例外があります。
前提条件: SSL サポートを使用して構築された Node.js ( ^18.18.0
、 ^20.9.0
、または>=21.1.0
)。 (公式の Node.js ディストリビューションを使用している場合、SSL は常に組み込まれています。)
次のコマンドを使用して、ESLint をインストールして構成できます。
npm init @eslint/config@latest
その後、次のように任意のファイルまたはディレクトリで ESLint を実行できます。
npx eslint yourfile.js
この例のように、 eslint.config.js
ファイルでルールを構成できます。
export default [
{
files : [ "**/*.js" , "**/*.cjs" , "**/*.mjs" ] ,
rules : {
"prefer-const" : "warn" ,
"no-constant-binary-expression" : "error"
}
}
] ;
"prefer-const"
および"no-constant-binary-expression"
という名前は、ESLint のルールの名前です。最初の値はルールのエラー レベルで、次のいずれかの値になります。
"off"
または0
- ルールをオフにします"warn"
または1
- ルールを警告としてオンにします (終了コードには影響しません)。"error"
または2
- ルールをエラーとしてオンにします (終了コードは 1 になります)3 つのエラー レベルにより、ESLint がルールを適用する方法をきめ細かく制御できます (構成オプションと詳細については、構成ドキュメントを参照してください)。
ESLint チームは、現在のバージョンに対して継続的なサポートを提供し、以前のバージョンに対して 6 か月の限定サポートを提供します。限定的なサポートには、重大なバグ修正、セキュリティ問題、互換性問題のみが含まれます。
ESLint は、パートナーである Tidelift および HeroDevs を通じて、現在および以前のバージョンの両方に対して商用サポートを提供しています。
詳細については、「バージョンのサポート」を参照してください。
ESLint は OpenJS Foundation の行動規範を遵守しています。
問題を報告する前に、報告内容のガイドラインを必ずお読みください。
はい、ESLint は JSX 構文の解析をネイティブにサポートしています (これは構成で有効にする必要があります)。 JSX 構文のサポートは React のサポートと同じではないことに注意してください。 React は、ESLint が認識しない特定のセマンティクスを JSX 構文に適用します。 React を使用していて React セマンティクスが必要な場合は、eslint-plugin-react を使用することをお勧めします。
いいえ、ESLint と Prettier は異なる役割を果たします。ESLint はリンター (問題のあるパターンを探す) であり、Prettier はコード フォーマッタです。両方のツールを使用するのが一般的です。相互に適切に動作するように構成する方法については、Prettier のドキュメントを参照してください。
ESLint は、ECMAScript 3、5 を完全にサポートしており、2015 年から最新のステージ 4 仕様 (デフォルト) まで毎年サポートされています。構成を通じて、必要な ECMAScript 構文やその他の設定 (グローバル変数など) を設定できます。
ESLint のパーサーは、最新の最終的な ECMAScript 標準のみを公式にサポートしています。ステージ 3 の ECMAScript 構文提案でのクラッシュを回避するために、コア ルールに変更を加えます (ただし、正しい実験的 ESTree 構文を使用して実装されている場合に限ります)。言語拡張機能 (JSX、Flow、TypeScript など) との連携を改善するために、ケースバイケースでコア ルールに変更を加えることがあります。
その他の場合 (クラッシュしないだけでなく、新しい構文によりルールがより多くのまたはより少ないケースについて警告する必要がある場合など)、他のパーサーやルール プラグインを使用することをお勧めします。 Babel を使用している場合は、@babel/eslint-parser および @babel/eslint-plugin を使用して、Babel で使用可能なオプションを使用できます。
言語機能が ECMAScript 標準 (TC39 プロセスによるステージ 4) に採用されると、貢献ガイドラインに従って、新しい機能に関連する問題とプル リクエストを受け入れます。それまでは、実験的機能に適切なパーサーとプラグインを使用してください。
ESLint は、ESLint のメジャー リリースごとに、サポートされている Node.js バージョンを更新します。その時点で、ESLint でサポートされる Node.js バージョンは次のように更新されます。
ESLint は、Node.js Current リリースの後にリリースされた Node.js バージョンでも動作することが期待されています。
特定の ESLint リリースで正式にサポートされている Node.js バージョンについては、クイック スタート ガイドを参照してください。
ディスカッションを開いたり、Discord サーバーに立ち寄ったりしてください。
package-lock.json
のようなロック ファイルは、デプロイされたアプリケーションに役立ちます。これらにより、環境間およびデプロイメント間で依存関係が一貫していることが保証されます。
npm レジストリに公開されるeslint
などのパッケージには、ロック ファイルは含まれません。ユーザーとしてnpm install eslint
と、ESLint のpackage.json
のバージョン制約が尊重されます。 ESLint とその依存関係は、ユーザーのロック ファイルが存在する場合にはそのファイルに含まれますが、ESLint 自体のロック ファイルは使用されません。
開発および CI において互換性のある最新の依存関係バージョンを利用できるように、プロジェクトに ESLint をインストールするときにユーザーが取得できるように、依存関係のバージョンを意図的にロックしていません。
詳細については、Twilio ブログで詳しく説明されています。
隔週の金曜日または土曜日にリリースを予定しています。リリースの問題を追跡して、特定のリリースのスケジュールに関する更新を確認できます。
ESLint はセキュリティを真剣に考えています。私たちは、ESLint がすべての人にとって安全であることを保証し、セキュリティの問題が迅速かつ責任を持って解決されるように懸命に取り組んでいます。セキュリティ ポリシーの全文をお読みください。
ESLint はセマンティック バージョニングに従います。ただし、コード品質ツールとしての ESLint の性質により、マイナー バージョンまたはメジャー バージョンのバンプがいつ発生するかは必ずしも明確ではありません。これを誰にとってもわかりやすくするために、ESLint に対して次のセマンティック バージョニング ポリシーを定義しました。
eslint:recommended
が更新され、lint エラー (ルールの削除など) が大幅に減少します。eslint:recommended
が更新されると、新しい lint エラーが発生する可能性があります (ルールの追加、ほとんどのルール オプションの更新など)。当社のポリシーによれば、マイナーアップデートでは、以前のリリースよりも多くの lint エラーが報告される可能性があります (例: バグ修正によるもの)。そのため、ビルドの結果を保証するために、 package.json
でチルダ ( ~
) を使用することをお勧めします (例: "eslint": "~3.1.0"
。
文体ルールは、新しいルールとルールの変更をどのように評価するかに関するポリシーに従って凍結されます。これはつまり:
これらの人々はプロジェクトを推進し、助けとなるリソースです。
リリースを管理し、機能リクエストをレビューし、定期的に会合して ESLint が適切に維持されていることを確認する担当者。