Awesome ESLint
ESLintを扱う資料や関連プロジェクトをまとめたAwesomeリストです。
目次
設定
著名な企業・組織の設定
- Airbnb - Airbnb’s style guide 用の共有設定。
- Airbnb-babel - AirbnbのESLint設定にBabelサポートを備えたもの
- Alloy - React/Vue/TypeScriptプロジェクト向けのプログレッシブESLint設定
- ESLint - ESLintチームが維持するプロジェクトに使われるESLint設定
- Facebook - Facebookのスタイルガイド向けの共有設定
- Feedzai - FeedzaiのJavaScript/Reactプロジェクト向けの共有設定
- Shopify - Shopify’s style guide 用の共有設定。
- Wikimedia - Wikimedia’s style guide 用の共有設定。 MediaWiki によって使用される。
その他の主要な設定(およそ100スター以上)
-
Auto - プロジェクトの依存関係に基づいてESLintを自動設定
-
Canonical - Canonical style guide 用の共有設定。
-
Standard - JavaScript Standard Style 用の共有設定。
-
Antfu Eslint Config - AnthonyのESLint設定テンプレート
その他の設定
- Adjunct - メインのESLint設定と併用するのに適したプラグインの集合
- Ash-Nazg - すべてを統制する1つの設定
- Cecilia - 素晴らしいプロジェクト向けのESLint設定
- clean-typescript - TypeScriptコードベースにおいて、過剰なキーワードを禁止することで古典的なJavaScript機能を強制
- Hardcore - 現存する中で最も厳格(かつ実用的)なESLint設定
- Problems - 実際の問題のみを検出する共有設定であり、スタイルの好みを強制しない
- Supermind - Supermindスタイル向けの共有設定
- Sheriff - 包括的かつ強い意見を持つESLint設定。TypeScriptを主眼にしたもの
ESLint設定済み構成
- Node.js Standard Style - Node.jsのコア設定
- eslint-config-airbnb-extended - 人気のAirbnbスタイルガイドを拡張した強力なESLint設定。TypeScriptへのサポートも備えている
- eslint-config-prettier - Prettierチームが維持するESLint向けのPrettier設定
- Standard - JavaScript Standard Style
- Superlint - JavaScript Supermind Style
- XO - JavaScriptの幸せなスタイルリント器 ❤️
プラグイン
コード品質
- 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
- CSS-modules - CSSモジュールの未定義または未使用ルールを検出
- Emotion - emotion向けのESLintルール
- Styled Components
- Better Styled Components - styled-components向けの自動修正可能なESLintルール
- styled-components-a11y - Styled Componentsのアクセシビリティ対応
- vanilla-extract - CSS-in-JSやStyled Componentsのコードを検査します。 vanilla-extract CSS
非推奨API
埋め込みコード
フレームワーク
- 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
- VueJS - VueJS用のプラグイン
- VueJS Scoped CSS - VueJSにおけるScoped CSS用のプラグイン
言語・環境
- 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 用のリントルール
- eslint-plugin-erasable-syntax-only - TypeScript の erasableSyntaxOnly フラグを細かく強制
- eslint-plugin-expect-type - Twoslash、$ExpectError、$ExpectType の型断言を提供
- YAML - YAML 用の ESLint プラグイン
ライブラリ
- GraphQL
- dotansimha/graphql-eslint - GraphQL の操作およびスキーマをベストプラクティスで検証、整形、チェック
- apollostack/eslint-plugin-graphql - スキーマに照らして 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 - クラスプロパティの使用を促進し、
thisとbindの組み合わせやコンストラクタ内で状態を設定する場合を報告する -
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プラグイン。
性能
- DOM
- Optimize Regex - 性能問題につながるコードパターンを検査します。
- Perf-Standard plugin and Config
セキュリティ
- no-secrets - 潜在的なシークレットや認証情報の検出を行うESLintプラグイン。
- no-unsanitized - セキュリティ上危険なコードパターンを検査します。
innerHTMLouterHTML - pii - コード内のPII(個人情報)の適合性をチェック・強制する。つまり、コメントや文字列リテラルにメールアドレス、誕生日、IPアドレス、電話番号は一切含まれてはならない。
- pg - PostgreSQL/node-postgresセキュリティ:SQLインジェクション防止(CWE-89)、接続プールの漏洩検出(CWE-772)、トランザクションの安全性。CWEマッピング付きの13のルール。
- Security - Nodeセキュリティ向けのESLintルール。
- xss - コードベース内のXSS問題を生産環境に到達する前に検出する。
スタイル
- ESLint Stylistic - Formatting and stylistic ESLint core rules moved to this project and are maintained by the community.
- const case - 定数プリミティブリテラルのキャピタル化を強制する。
- editorconfig -
.editorconfigからルールを派生させる - filenames - JavaScriptファイルのファイル名を一貫性を持たせるための設定。ESLint 9と互換性がなく、もう維持されていません。
- Simple import sort - インポートの並び順を自動で修正可能な機能。
- perfectionist sorting - オブジェクト、インポート、TypeScriptの型、エnum、JSXプロパティなど、すべてを並び順に整列。
- split-and-sort-imports - インポートを並び順に整列し、複数のインポートを1行に分割。
- Switch case - ESLint向けのswitch-caseに特化したルール。
- padding - 文の間のインデントを許容/禁止できる。
- paths - tsconfig/jsconfigのパスを使用し、相対パスをエイリアスに自動修正。
- @gitbutler/no-relative-imports - tsconfigのパスを使用し、相対パスをエイリアスに自動修正。tsconfigの継承を考慮。
テストツール
- AVA - AVA向けのチェックルール。
- Chai
- Cucumber - Cucumber向けのチェックルール。
- Cypress - Cypress向けのチェックルール。
- Jasmine - Jasmine向けのチェックルール。
- Jest
- Enforcing practices - Jest向けのチェックル及。
- Enforcing consistent formatting - Jest向けのフォーマットルール。
- Jest-async - Jest向けの非同期チェックルール。
- Jest-DOM - Jest-DOM向けのチェックルール。
- Vitest
- ESLint Plugin Vitest - Vitest向けのESLintプラグイン。
- Mocha
- Enforcing practices - Mocha向けのチェックルール。
- Enforcing manageability
- Playwright - Playwright向けのチェックルール。
- QUnit - QUnit向けのチェックルール。
- TestCafe-Community - テストフレームワーク固有のコードとプラクティスを検査します。 TestCafe globals
- Testing Library - テストライブラリ用のリントルール
パーサー
- 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出力をバーチャートにフォーマット
グローバル変数
- confusing-browser-globals - ブラウザのグローバル変数の中でもよく誤解を招き、window.の明示的な修飾なしで使用するのは推奨されないものとして選ばれた一覧
- ES and browser globals (originally from ESLint)
- chai globals
- TestCafe globals - TestCafe用の
fixtureおよびtestグローバル変数
ツール
- 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プラグインのドキュメントを自動生成。
チュートリアル
- Creating an ESLint Plugin - ESLintルールとプラグインの作成方法を解説する記事。
- Lint Like It’s 2015 - ESLintを使用するメリットを解説する記事。
- Writing a rule to spot undeclared props hiding in plain sight - スコープ分析を必要とするルールを作成する方法についての記事。
- Dear Old ESLint - ESLintの概要を紹介する短い記事。
インストール・セットアップ
- Lintier - ESLintと関連ツールの初期設定を支援します。