このページの内容

Awesome ESLint

ESLintを扱う資料や関連プロジェクトをまとめたAwesomeリストです。

目次

設定

著名な企業・組織の設定

その他の主要な設定(およそ100スター以上)

その他の設定

  • Adjunct - メインのESLint設定と併用するのに適したプラグインの集合
  • Ash-Nazg - すべてを統制する1つの設定
  • Cecilia - 素晴らしいプロジェクト向けのESLint設定
  • clean-typescript - TypeScriptコードベースにおいて、過剰なキーワードを禁止することで古典的なJavaScript機能を強制
  • Hardcore - 現存する中で最も厳格(かつ実用的)なESLint設定
  • Problems - 実際の問題のみを検出する共有設定であり、スタイルの好みを強制しない
  • Supermind - Supermindスタイル向けの共有設定
  • Sheriff - 包括的かつ強い意見を持つESLint設定。TypeScriptを主眼にしたもの

ESLint設定済み構成

プラグイン

コード品質

  • depend - 依存関係ツリーの肥大化や不要なポリフィルを検出する
  • GitHub - GitHubから来た雑多なルール
  • SonarJS - バグや怪しいパターンを検出するルール
  • Unicorn - さまざまな素晴らしいESLintルール
  • @mysticatea/eslint-plugin - 雑多なルール
  • @brettz9/eslint-plugin - 不具合、複雑性、保守性等のコード品質を検査するルールを提供します。 @mysticatea
  • De Morgan - コード内の論理式を変換して読みやすくなるようにする
  • Deslint - AI生成されたフロントエンドコードの設計品質ゲート。React、Vue、Svelte、Angular、およびシンプルHTMLにおいて、任意の色・間隔・タイプグラフィック、設計システムのズレ、レスポンシブカバレッジ、WCAG 2.2 / 2-1 AAアクセシビリティをカバーする20のルール
  • eslint-plugin-code-complete - クリーンで維持性の高いソフトウェア設計の原則を強制するカスタムESLintプラグイン — Code Completeをインスピレーションに受けて作成
  • eslint-plugin-ai-guard - AI生成コードによってよく導入されるバグやセキュリティ問題(非同期の誤用、空のキャッチ、認証の欠如、SQL結合、セレクト)を検出

互換性

  • Compat - 使用する API のブラウザ互換性をチェック(ESLint プラグインとして caniuse)。
  • ecmascript-compat - ブラウザリストのターゲットがサポートしていないECMAScript機能を無効にする
  • es-x - 特定の ECMAScript バージョンまたは個別の機能を無効にする。長期間メンテナンスされていない eslint-plugin-es の適切に維持されたフォーク。
  • es5 - ES5ユーザー向けのESLintプラグイン(ES2015以降の使用を禁止)
  • ie11 - IE11でサポートされていないES6機能を検出

CSS-in-JS

非推奨API

  • deprecate - 関数やモジュールを非推奨とマークし、使用時にlintメッセージを表示
  • disable - ファイルパスパターンやインラインコメントを使って指定されたプラグインを無効にする

埋め込みコード

  • HTML - HTML <script> タグ内の JavaScript のチェック。
  • Markdown - Markdown 内の JavaScript のチェック。

フレームワーク

  • Angular - Angular(v2以降)向けのlintルール
  • AngularJS - John Papa’s AngularJS Styleguide に従ったルールを適用するチェックルール。
  • Astro - Astro components のプラグイン。
  • Backbone - Backboneに対するリント規則
  • Ember - Emberに対するリント規則
  • Hapi - hapiに対するリント規則
  • Meteor - Meteor用のESLintリント規則
  • React
    • JSX a11y - JSX要素に対するアクセシビリティ規則
    • React - ReactおよびJSXに対するリント規則
    • React Hooks - React Hooksに対するリント規則
    • React Native - React Native用のリント規則
    • React-Redux - React-Redux用のリント規則
    • React Refresh - Viteを使用する際のHMR体験を改善
  • Solid - SolidおよびJSXに対するリント規則
  • Svelte - Svelte v3コンポーネントに対するリ連規則
  • Vue

言語・環境

  • Babel - ビルトイン規則への置き換えを追加し、Babel機能を含む
  • eslint-plugin-eslint-plugin - ESLintプラグインによるESLintプラグインのリント
  • Flow
    • Flow - Flow型リント規則
    • Flow Errors - FlowをESLintプラグインとして実行
  • HTML - HTMLに対するESLintプラグイン
  • JSON
    • JSON - JSONファイルのリント
    • JSON, package.json - JSON ファイルのチェック、フォーマット、自動修正。 package.json を並べ替え。
    • JSON with Comments - JSON、JSONC および JSON5 用の ESLint プラグイン
    • JSON Schema - JavaScript、JSON、YAML および TOML に定義されたデータを JSON Schema Validator で検証
    • eslint-plugin-package-json - 一貫性があり、読みやすく、有効な package.json ファイルに対するルール
  • MDX - MDX 用の ESLint パーサー/プラグイン
  • N - Node.js 用の追加 ESLint ルール。長期間メンテナンスされていない eslint-plugin-node の適切に維持されたフォーク。
  • SQL - ESLint 用の SQL リントルール
  • TOML - TOML 用の ESLint プラグのルール
  • TypeScript - TypeScript 用のリントルール
  • YAML - YAML 用の ESLint プラグイン

ライブラリ

  • GraphQL
  • TypeGraphQL - TypeGraphQL 用のリントルール(よくある誤りを検出)
  • jQuery - jQuery 用のリントルール(非推奨機能に向けたバージョンごとの設定を含む)
  • JSDoc - 特定のライブラリやAPIの利用方法を検査します。 @example
  • Lodash
    • Lodash - Lodash 用のリントルール
    • Lodash/fp - Lodash/fp 用のリントルール
    • Lodash template - Lodash テンプレート/Underscore テンプレート用のプラグイン
    • Microtemplates (Used in Lodash and Underscore.js)
  • Mongodb - MongoDB ナイブ Node.js ドライバー用のリントルール
  • Ramda - Ramda 用のリントルール
  • RequireJS - RequireJS 用のリントルール
  • Tailwind CSS - Tailwind CSS クラス名に対する lint ルール
  • Tailwind CSS v4 - 読みやすさを向上させるフォーマットルールと、ベストプラクティスを強制する lint ルールを用いて、より良い Tailwind CSS を書くための ESLint プラグイン

その他

  • Diff - 変更された行だけに ESLint を実行。また CI にも対応!
  • Misc - カスタムチェックや第三者ルールのラップ(変更)に関するルールを含むその他ルール
  • Notice - ファイルのトップ部分をチェックし、修正する ESLint ルール
  • Only-Error - すべてのルールをエラーに変換
  • Only-Warn - すべてのルールを警告に変換
  • PutOut - ESLint プラグインとして putout チェッカーを統合。
  • TypeLint - 既存のスキーマ(Swagger、Redux)に基づき型を導入し、オブジェクトプロパティへのアクセスをチェックすることで undefined エラーを防止。
  • Woke - 不適切な言葉を検出することで、包摂的なコードベースを促進

プラクティス・特定のECMAScript機能

  • array-func - es2015 の配列メソッドや関数の使用時に冗長性を避ける

  • arrow functions - 適切な矢印関数定義を確保する ESLint ルール

  • boundaries - プロジェクト内の要素がファイル構成と依存関係を尊重しているかを確認するアーキテクチャ境界の尊重を保証

  • @eslint-community/eslint-plugin-eslint-comments - ESLint ディレクティブコメントに関するベストプラクティス(/*eslint-disable*/ など)。長期間メンテナンスされていない eslint-plugin-eslint-comments の適切に維持されたフォーク。

  • eslint-plugin-error-cause - 例外を再スローする際に元のエラー文脈を保持するプラグイン

  • eslint-plugin-hexagonal-architecture - ヘキサゴナルアーキテクチャのベストプラクティスを強制するプラグ術

  • eslint-plugin-hex-under - 指定された値より小さい16進数が存在するかを確認するプラグイン

  • eslint-plugin-signature-design - 同じ型のパラメータが非常に多い関数を禁止し、オブジェクトベースの署名を推奨し、プリミティブの過剰使用を防ぐ

  • eslint-plugin-write-good-comments - コメントにおける良い書き方を強制する ESLint ルール

  • eslint-plugin-exception-handling - エラーを投げうる未処理関数を検出する lint ルール

  • fp - 関数型プログラミングに特化した ESLint ルール

  • functional - JavaScript および TypeScript において、変更の禁止と関数型プログラミングの推進を促進する ESLint ルール

  • mutate - パラメータの誤操作を防ぐために、明示的な mut 前綴(JavaScript)または Mut<T> 型アノテーション(TypeScript)を強制。

  • ime-safe-form - IME フォーム入力中の誤操作を防ぐために、 e.isComposing ガードまたはフォーム submit イベントを必要とする。

  • Immutable - JavaScript においてすべての変更を無効にする

  • import - ES2015+のimport/export構文のリントチェックを行い、ファイルパスやimport名のスペルミスによる問題を防止する。

  • import-x - ES2015+ のインポート/エクスポート構文のチェックを行い、ファイルパスやインポート名の誤字を防ぐ。長期間メンテナンスされていない eslint-plugin-import の軽量フォークだが、バックワード互換性を破る。

  • logical-imports - ローカル名でインポートを論理的に並べる。

  • Math - MathオブジェクトおよびNumberに関連するESLintプラグイン。

  • new-with-error - エラーが new を使って投げられるようにする

  • no-argument-spread - 大きな配列に対してスタックオーバーフローを引き起こす可能性のある Math.max(...args) といった表現に対してlintをかける

  • no-comments - バンドラーが使われていない場合にコメントがプロダクションに漏れるのを防ぎ、開発者が古いコード行をコメントアウトするのを阻止する。

  • no-constructor-bind - クラスプロパティの使用を促進し、 thisbind の組み合わせやコンストラクタ内で状態を設定する場合を報告する

  • no-inferred-method-name - オブジェクトリテラル内の推定されたメソッド名をチェックするためのカスタムESLintルール。

  • no-loops - 2019年なのにまだループを使っているの?

  • no-restricted-syntax - クエリされた構文の内容をメッセージに表示する。

  • no-use-extend-native - 拡張されたネイティブオブジェクトの使用を防ぐ。

  • Promise - プロミスを使った開発におけるベストプラクティス。

  • pure - 副作用のない純粋関数を強制する。

  • ReDoS - 再実行拒否(ReDo等)の可能性のある脆弱性を検出するためのESLintプラグイン。

  • ReDoSDetector - 再実行拒否(ReDo等)の可能性のある脆弱性を検出するためのESLintプラグイン。

  • RegExp - 正規表現の誤りやスタイルガイド違反を検出するためのESLintプラグイン。

  • sort-keys-fix - ESLintの sort-keys ルールに対してフィクスを追加する

  • this - 純関数を書くこと、 this を許可しない

  • toplevel - モジュールトップレベルでの副作用を禁止するためのESLintプラグイン。

性能

セキュリティ

  • no-secrets - 潜在的なシークレットや認証情報の検出を行うESLintプラグイン。
  • no-unsanitized - セキュリティ上危険なコードパターンを検査します。 innerHTML outerHTML
  • pii - コード内のPII(個人情報)の適合性をチェック・強制する。つまり、コメントや文字列リテラルにメールアドレス、誕生日、IPアドレス、電話番号は一切含まれてはならない。
  • pg - PostgreSQL/node-postgresセキュリティ:SQLインジェクション防止(CWE-89)、接続プールの漏洩検出(CWE-772)、トランザクションの安全性。CWEマッピング付きの13のルール。
  • Security - Nodeセキュリティ向けのESLintルール。
  • xss - コードベース内のXSS問題を生産環境に到達する前に検出する。

スタイル

テストツール

パーサー

  • babel-eslint-parser - 素晴らしいESLintで、すべての有効なBabelコードをリントできる
  • TypeScript - ESLintと互換性のある出力を作成するTypeScriptパーサー
  • BrightScript - Roku開発用のBrightScriptプラグイン。パーサーとルールを含む
  • GraphQL - GraphQL AST用のパーサー。パーサー、プラグイン、プロセッサ(非GraphQLファイル用)、ルールを含む

フォーマッター

  • html - 拡張されたESLintフォーマッター
  • badger - ESLintの結果をSVGベースのバッジで要約(例:READMEに使用)
  • git-log - Git Author、Date、Hashを含むESLintフォーマッター
  • github - プルリクエスト内にESLintのエラーと警告を直接表示
  • gitlab - GitLabコード品質結果にESLint結果を出力
  • mo - 見た目が良く、読みやすいESLintフォーマッター
  • SARIF - GitHub Advanced SecurityなどにインポートできるSARIF形式の結果を生成
  • summary-chart - ESLint出力をバーチャートにフォーマット

グローバル変数

ツール

  • es-file-traverse - 入力ファイルまたはファイル群からインポートやrequireに基づいて使用されているファイルのみをリストアップし、ESLintに渡せるリストを生成。特に3rdパーティ依存関係のリントに適している
  • eslint-find-rules - カスタム設定に含まれていないESLintの標準ルールを発見
  • eslint-index - ESLint設定ファイル内のルールを検索および管理するCLIツール
  • eslint-interactive - 大量のESLintエラーを修正するためのCLIツール
  • eslint-multiplexer - 複数のESLint結果をマルチプレックスし、共通ファイルの結果をマージ
  • eslint-nibble - 1つのルールずつ修正することでESLintに慣れやすくする
  • eslint-plugin-rule-adoption - インクリメンタルルール導入に向けたESLintプラグイン。 --fix およびコードモッドが不十分な場合に。
  • eslint-rule-documentation - ESLintルールのドキュメントURLを検索する
  • ESlint Rules Index - ESLintのルールを一覧にした大きなテーブルで、開発者が簡単に見つけられるようにする。
  • eslint-watch - watchモードでESLintを実行。
  • codacy-eslint - Codacy で Docker を使用して ESLint を実行。
  • esprint - 複数のスレッドでESLintを実行。
  • generator-eslint - ESLint プラグインとルールをYeomanで生成します。
  • editor-info - 編集器やIDE内かどうかを検出し、その種類を特定し、ESLintの設定をそれに応じて調整できるようにする。
  • eslint-dashboard - ターミナル内に存在するインタラクティブなESLintワークフロー。
  • eslint-remote-tester - 複数のリポジトリに対して与えられたESLintルールを一括でテストするためのCLIツール。
  • eslint-disable-autofix - 特定のESLintルールに対してautofixを無効にするためのユーティリティ。

ESLint向け開発

  • eslint-doc-generator - あなたのESLintプラグインのドキュメントを生成し、readmeにルールテーブル、ルールドキュメントにヘッダーを提供。
  • eslint-docgen - ルールメタデータとテストケースからESLintプラグインのドキュメントを自動生成。

チュートリアル

インストール・セットアップ

  • Lintier - ESLintと関連ツールの初期設定を支援します。