Awesome Eslint Overview
A list of awesome ESLint plugins, configs, etc.
🏠 Home · 🔥 Feed · 📮 Subscribe · ❤️ Sponsor · 😺 dustinspecker/awesome-eslint · ⭐ 4.7K · 🏷️ Programming Languages
Awesome ESLint 
A list of awesome ESLint configs, plugins, etc.
If you want to contribute, please read the contribution guidelines.
Contents
- Configs
- Preconfigured Configs with ESLint Set up
- Plugins
- Parsers
- Formatters
- Globals
- Tools
- Developing for ESLint
- Tutorials
- Installation and Setup
Configs
Configs by Well-Known Companies/Organizations
- Airbnb (⭐148k) - Shareable config for Airbnb's style guide (⭐148k).
- Airbnb-babel (⭐3) - Airbnb's ESLint config with Babel Support.
- Alloy (⭐2.6k) - Progressive ESLint config for your React/Vue/TypeScript projects.
- ESLint (⭐27k) - Contains the ESLint configuration used for projects maintained by the ESLint team.
- Facebook - Sharable config for Facebook's style guide.
- Feedzai (⭐9) - Feedzai's shareable config for JavaScript/React projects.
- Shopify (⭐490) - Shareable config for Shopify's style guide (⭐262).
- Wikimedia (⭐33) - Shareable config for Wikimedia's style guide, used by MediaWiki.
Other Prominent Configs (100 stars or so)
- Auto (⭐399) - Automatically configure ESLint based on your project's dependencies.
- Canonical (⭐622) - Shareable config for Canonical style guide (⭐19).
- Standard (⭐2.7k) - Shareable config for JavaScript Standard Style (⭐29k).
- XO (⭐285) - Shareable config for XO (⭐8k).
- Antfu Eslint Config (⭐6.2k) - Anthony's ESLint config preset.
Other Configs
- Adjunct - A reasonable collection of plugins to use alongside your main ESLint configuration.
- Ash-Nazg (⭐9) - One config to rule them all!
- Cecilia (⭐7) - ESLint configuration for awesome projects.
- clean-typescript - Enforce classic JavaScript featuress in TypeScript codebase by banning excessive keywords.
- Hardcore (⭐466) - The most strict (but practical) ESLint config out there.
- Problems (⭐67) - Shareable config that only catches actual problems, and doesn't enforce stylistic preferences.
- Supermind (⭐4) - Shareable config for Supermind style.
- Sheriff (⭐179) - Comprehensive and highly opinionated Eslint configuration. Typescript oriented.
Preconfigured Configs with ESLint Set up
- Node.js Standard Style (⭐6) - Node.js core config.
- eslint-config-prettier - Prettier config for ESlint maintained by Prettier team.
- Standard (⭐29k) - JavaScript Standard Style.
- Superlint (⭐5) - JavaScript Supermind Style.
- XO (⭐8k) - JavaScript happiness style linter ❤️.
Plugins
Code Quality
- depend (⭐485) - Helps detect dependency tree bloat and redundant polyfills.
- GitHub (⭐327) - Misc. rules from GitHub.
- SonarJS (⭐1.2k) - Rules detecting bugs and suspicious patterns.
- Unicorn (⭐5k) - Various awesome ESLint rules.
- @mysticatea/eslint-plugin (⭐26) - Misc. rules.
- @brettz9/eslint-plugin (⭐2) - Misc. rules. of
@mysticateawithout the personal config. - De Morgan (⭐311) - Transforms logical expressions in code to make them easier to understand.
- Deslint (⭐0) - The design quality gate for AI-generated frontend code. 20 rules covering arbitrary colors/spacing/typography, design-system drift, responsive coverage, and WCAG 2.2 / 2.1 AA accessibility across React, Vue, Svelte, Angular, and plain HTML.
- eslint-plugin-code-complete (⭐14) - A custom ESLint plugin that enforces principles of clean, maintainable software design — inspired by Code Complete.
- eslint-plugin-ai-guard - Detects bugs and security issues commonly introduced by AI-generated code (async misuse, empty catch, auth gaps, SQL concat, secrets).
Compatibility
- Compat (⭐3.2k) - Lint browser compatibility of APIs used (caniuse as an ESLint plugin).
- ecmascript-compat (⭐69) - Disable ECMAScript language features not supported by your browserslist targets.
- es-x (⭐150) - Disable specific ECMAScript language versions or individual features. Properly maintained fork of no longer maintained
eslint-plugin-es. - es5 (⭐55) - ESLint plugin for ES5 users (forbid ES2015+ usage).
- ie11 (⭐15) - Detect unsupported ES6 features in IE11.
CSS in JS
- CSS-modules (⭐155) - Lint undefined or unused rules for css modules.
- Emotion (⭐18k) - ESLint rules for emotion.
- Styled Components
- Better Styled Components (⭐66) - Auto fixable ESlint's rules for styled components.
- styled-components-a11y (⭐155) - A11y for Styled Components.
- vanilla-extract (⭐32) - An ESLint plugin for enforcing CSS property ordering in vanilla-extract CSS (⭐10k) styles.
Deprecation
- deprecate (⭐85) - Mark functions or modules as deprecated and get lint messages when they are used.
- disable (⭐56) - Disable specified plugins using file path patterns and inline comments.
Embedded
- HTML (⭐456) - Linting for JavaScript inside of HTML
<script>tags. - Markdown (⭐565) - Linting for JavaScript inside of Markdown.
Frameworks
- Angular (⭐1.8k) - Linting rules for Angular (v2+).
- AngularJS (⭐621) - Linting rules to adhere to the John Papa's AngularJS Styleguide (⭐24k).
- Astro (⭐419) - Plugin for Astro components.
- Backbone (⭐92) - Linting rules for Backbone.
- Ember (⭐261) - Linting rules for Ember.
- Hapi (⭐22) - Linting rules for hapi.
- Meteor (⭐45k) - Meteor specific linting rules for ESLint.
- React
- JSX a11y (⭐3.6k) - Accessibility rules on JSX elements.
- React (⭐9.3k) - Linting rules for React and JSX.
- React Hooks (⭐245k) - Linting rules for React Hooks.
- React Native (⭐762) - React Native specific linting rules.
- React-Redux (⭐82) - React-Redux specific linting rules.
- React Refresh (⭐334) - Improve HMR experience when using Vite.
- Solid (⭐261) - Linting rules for Solid and JSX.
- Svelte (⭐398) - Linting rules for Svelte v3 Components.
- Vue
- VueJS (⭐4.6k) - Plugin for VueJS.
- VueJS Scoped CSS (⭐108) - Plugin for Scoped CSS in VueJS.
Languages and Environments
- Babel (⭐44k) - Adds replacements for built-in rules to include Babel features.
- eslint-plugin-eslint-plugin - An ESLint plugin for linting ESLint plugins.
- Flow
- Flow (⭐1.1k) - Flow type linting rules.
- Flow Errors (⭐402) - Run Flow as an ESLint plugin.
- HTML (⭐260) - ESLint plugin for HTML.
- JSON
- JSON (⭐216) - Lint your JSON files.
- JSON, package.json - Lint, format, and auto-fix your JSON files. Sort your
package.json. - JSON with Comments (⭐234) - ESLint plugin for JSON, JSONC and JSON5.
- JSON Schema (⭐94) - Validates data defined in JavaScript, JSON, YAML and TOML using JSON Schema Validator.
- eslint-plugin-package-json - Rules for consistent, readable, and valid package.json files.
- MDX (⭐298) - ESLint Parser/Plugin for MDX.
- N (⭐329) - Additional ESLint's rules for Node.js. Properly maintained fork of no longer maintained
eslint-plugin-node. - SQL (⭐113) - SQL linting rules for ESLint.
- TOML (⭐32) - ESLint plugin for TOML.
- TypeScript - Linting rules for TypeScript.
- eslint-plugin-erasable-syntax-only - Granularly enforces TypeScript's erasableSyntaxOnly flag.
- eslint-plugin-expect-type - Provides Twoslash, $ExpectError, and $ExpectType type assertions.
- YAML (⭐176) - ESLint plugin for YAML.
Libraries
- GraphQL
- dotansimha/graphql-eslint - Validates, prettifies and checks your GraphQL operations and GraphQL schema for best-practices.
- apollostack/eslint-plugin-graphql - Check your GraphQL query strings against a schema.
- TypeGraphQL - Linting rules for TypeGraphQL, targeted at finding common mistakes.
- jQuery (⭐32) - Linting rules for jQuery, including versioned configs for deprecated features.
- JSDoc (⭐1.2k) - Linting rules for JSDoc comments (including the JavaScript within
@example). - Lodash
- Lodash - Lodash specific linting rules.
- Lodash/fp (⭐150) - Lodash/fp specific linting rules.
- Lodash template (⭐17) - Plugin for Lodash template/Underscore template.
- Microtemplates (⭐4) (Used in Lodash and Underscore.js)
- Mongodb - Mongodb native Node.js driver linting rules.
- Ramda (⭐117) - Ramda specific linting rules.
- RequireJS (⭐29) - Linting rules for RequireJS.
- Tailwind CSS (⭐2.1k) - Linting rules for Tailwind CSS classnames.
- Tailwind CSS v4 - ESLint plugin to help you write better tailwindcss by improving readability with formatting rules and enforcing best practices with linting rules.
Misc
- Diff (⭐209) - Run ESLint on your changed lines only. Also supports CI!
- Misc - Miscellaneous rules including rules for creating custom checks and wrapping (modifying) third-party rules.
- Notice (⭐27) - An eslint rule that checks the top of files and fixes them too!
- Only-Error (⭐17) - Convert all rules to errors.
- Only-Warn - Convert all rules to warnings.
- PutOut (⭐784) - an ESLint plugin integrates putout (⭐784) linter into ESLint.
- TypeLint (⭐172) - Introduces types, based on existing schemas (Swagger, Redux) and linting access to object properties, preventing
undefinederrors. - Woke (⭐38) - Helps catch insensitive words, promoting an inclusive codebase.
Practices and Specific ES Features
- array-func (⭐97) - Avoid redundancy when using es2015 array methods and functions.
- arrow functions (⭐309) - ESLint rules to ensure proper arrow function definitions.
- boundaries (⭐856) - Ensures that your architecture boundaries are respected by the elements in your project checking file structure and dependencies.
- @eslint-community/eslint-plugin-eslint-comments (⭐91) - Best practices about ESLint directive comments (
/*eslint-disable*/, etc.). Properly maintained fork of no longer maintainedeslint-plugin-eslint-comments. - eslint-plugin-error-cause (⭐19) - A plugin to preserve original error context when re-throwing exceptions.
- eslint-plugin-hexagonal-architecture (⭐317) - A plugin that helps you to enforce hexagonal architecture best practices.
- eslint-plugin-hex-under - A plugin to prove that a hexadecimal number is less than a specified value.
- eslint-plugin-signature-design (⭐1) - Forbids functions with too many parameters of the same type, encouraging object-based signatures and preventing primitive obsession.
- eslint-plugin-write-good-comments (⭐41) - Enforce good writing style in comments.
- eslint-plugin-exception-handling (⭐58) - Lints unhandled functions that might throw errors.
- fp (⭐970) - ESLint rules for functional programming.
- functional (⭐972) - ESLint rules to disable mutation and promote fp in JavaScript and TypeScript.
- mutate (⭐2) - Prevent accidental parameter mutations by enforcing explicit
mutprefix (JavaScript) orMut<T>type annotation (TypeScript). - ime-safe-form (⭐5) - Prevents accidental form submission during IME composition by requiring
e.isComposingguard or formsubmitevent. - Immutable (⭐911) - Disable all mutation in JavaScript.
- import (⭐5.9k) - Linting of ES2015+ import/export syntax, and prevent issues with misspelling of file paths and import names.
- import-x (⭐702) - Linting of ES2015+ import/export syntax, and prevent issues with misspelling of file paths and import names. Lightweight fork of
eslint-plugin-import, but which breaks backwards compatibility. - Math (⭐15) - ESLint plugin related to Math object and Number.
- new-with-error (⭐25) - Require errors to be thrown using
new.
- no-argument-spread (⭐3) - Lints against expressions like
Math.max(...args)that can lead to a stack overflow for large arrays. - no-comments (⭐16) - Prevents leaking comments into production if bundler is not used and stops developers from commenting out old lines of code.
- no-constructor-bind (⭐12) - Encourages use of class properties by reporting use of
thiswithbindor setting state in constructors. - no-inferred-method-name (⭐26) - Custom rule for ESLint that checks for inferred method names within object literals.
- no-loops (⭐130) - It's 2019 and you still use loops?
- no-restricted-syntax (⭐5) - Show queried syntax's content in messages.
- no-use-extend-native (⭐58) - Prevent using extended native objects.
- Promise (⭐992) - Best practices when working with promises.
- pure (⭐32) - Enforce pure functions (without side effects).
- ReDoS - ESLint plugin for finding possible ReDoS vulnerabilities.
- ReDoSDetector (⭐11) - ESLint plugin for finding possible ReDoS vulnerabilities.
- RegExp (⭐761) - ESLint plugin for finding regexp mistakes and style guide violations.
- sort-keys-fix (⭐101) - Adds fixer for ESLint
sort-keysrule. - this (⭐16) - Write pure functions, don't allow
this. - toplevel (⭐20) - An eslint plugin for disallow side effect at module toplevel.
Performance
- DOM (⭐9)
- Optimize Regex (⭐75) - Optimize regex literals.
- Perf-Standard plugin and Config
Security
- no-secrets - An eslint plugin that detects potential secrets/credentials.
- no-unsanitized (⭐243) - Checks for
innerHTML,outerHTML, etc. - pii (⭐12) - Checks and enforces PII Compliance of the code. i.e. no email address, birth date, IP address or phone number in comments or string literals.
- pg - PostgreSQL/node-postgres security: SQL injection prevention (CWE-89), connection pool leak detection (CWE-772), transaction safety. 13 rules with CWE mapping.
- Security (⭐2.3k) - ESLint rules for Node Security.
- xss (⭐71) - Tries to detect XSS issues in codebase before they end up in production.
Style
- ESLint Stylistic - Formatting and stylistic ESLint core rules moved to this project and are maintained by the community.
- const case - Enforce capitalization of constant primitive literals.
- editorconfig (⭐17) - Derive rules from
.editorconfig. - filenames (⭐320) - Ensure consistent filenames for your JavaScript files. No longer maintained and does not work with ESlint 9 at all.
- Simple import sort (⭐2.4k) - Easy autofixable import sorting.
- perfectionist sorting (⭐2.9k) - Sort objects, imports, TypeScript types, enums, JSX props, etc.
- split-and-sort-imports (⭐1) - Sorts imports and splits 'multiple' imports into single line imports.
- Switch case (⭐18) - Switch-case-specific linting rules for ESLint.
- padding - Allows/disallows padding between statements.
- paths (⭐86) - Use paths from tsconfig/jsconfig and auto fix relative paths to aliases.
- @gitbutler/no-relative-imports - Use paths from tsconfig and auto fix relative paths to aliases. Observes tsconfig inheritance.
Testing Tools
- AVA (⭐232) - Linting rules for AVA.
- Chai
- Cucumber (⭐8) - Linting rules for Cucumber.
- Cypress (⭐725) - Linting rules for Cypress.
- Jasmine (⭐101) - Linting rules for Jasmine.
- Jest
- Enforcing practices (⭐1.2k) - Linting rules for Jest.
- Enforcing consistent formatting (⭐156) - Formatting rules for Jest.
- Jest-async - Async linting rule for Jest.
- Jest-DOM (⭐367) - Linting rules for Jest-DOM.
- Vitest
- ESLint Plugin Vitest (⭐477) - ESLint plugin for Vitest.
- Mocha
- Enforcing practices (⭐288) - Linting rules for Mocha.
- Enforcing manageability (⭐13)
- Playwright (⭐380) - Linting rules for Playwright.
- QUnit (⭐32) - Linting rules for QUnit.
- TestCafe-Community (⭐4) - TestCafe linting rules with env globals (fork from TestCafe globals (⭐15)).
- Testing Library (⭐1.1k) - Linting rules for Testing Library.
Parsers
- babel-eslint-parser (⭐44k) - Allows you to lint ALL valid Babel code with the fantastic ESLint.
- TypeScript - A TypeScript parser that produces output compatible with ESLint.
- BrightScript (⭐49) - BrightScript plugin for Roku development. Includes Parser and Rules.
- GraphQL - Parser for the GraphQL AST. Includes parser, plugin, processor (for non-graphql files) and rules.
Formatters
- html (⭐40) - A enhanced ESLint formatter.
- badger (⭐7) - Make SVG-based badges summarizing ESLint results (e.g., for use on a README).
- git-log (⭐41) - ESLint Formatter featuring Git Author, Date, and Hash.
- github (⭐111) - See ESLint errors and warnings directly in pull requests.
- gitlab - Output ESLint results in the GitLab code quality results.
- mo (⭐136) - Good-lookin' ESLint formatter and also for delightful reading experience.
- SARIF - Generate a results in a SARIF format so it can be imported into tools like GitHub Advanced Security.
- summary-chart (⭐13) - Format ESLint output into a bar chart.
Globals
- confusing-browser-globals (⭐104k) - A curated list of browser globals that commonly cause confusion and are not recommended to use without an explicit window. qualifier.
- ES and browser globals (⭐579) (originally from ESLint)
- chai globals
- TestCafe globals (⭐15) -
fixture&testglobals for TestCafe.
Tools
- es-file-traverse (⭐2) - Obtain a list of only those files which are in use based on imports and/or requires from an entry file or files; list passable to ESLint. Intended esp. for linting 3rd party dependencies.
- eslint-find-rules (⭐212) - Find built-in ESLint rules you don't have in your custom config.
- eslint-index (⭐21) - CLI for finding and managing rules in ESLint config files.
- eslint-interactive (⭐448) - The CLI tool to fix huge number of ESLint errors.
- eslint-multiplexer (⭐7) - Multiplex eslint results and merge results for common files.
- eslint-nibble (⭐884) - Ease into ESLint, by fixing one rule at a time.
- eslint-plugin-rule-adoption (⭐1) - An eslint plugin for incremental rule adoption, when
--fixand codemods don't cut it. - eslint-rule-documentation (⭐31) - Find the url for the documentation of an ESLint rule.
- ESlint Rules Index - A big table of ESlint Rules to help developers find them easily.
- eslint-watch (⭐198) - Run ESLint with watch mode.
- codacy-eslint (⭐16) - Docker used at Codacy to run ESLint.
- esprint (⭐656) - Run ESLint across multiple threads.
- generator-eslint (⭐245) - Generate ESLint plugin and rules with Yeoman.
- editor-info (⭐7) - Detect whether one is within an editor/IDE and which type, allowing one to tweak ESLint configuration accordingly.
- eslint-dashboard (⭐20) - Interactive ESLint workflow that lives in your terminal.
- eslint-remote-tester (⭐131) - CLI tool for testing given ESlint rules against multiple repositories at once.
- eslint-disable-autofix (⭐2) - Utility to disable autofix for specific ESLint rules.
Developing for ESLint
- eslint-doc-generator (⭐108) - Generate documentation for your ESLint plugin including a rules table for your readme and header for your rule docs.
- eslint-docgen (⭐11) - Automatically generate ESLint plugin documentation from rule metadata and test cases.
Tutorials
- Creating an ESLint Plugin - Article walking through the creation of an ESLint rule and plugin.
- Lint Like It's 2015 - Article walking through the benefits of using ESLint.
- Writing a rule to spot undeclared props hiding in plain sight - Article about creating rules that require scope analysis.
- Dear Old ESLint - Quick intro article on ESLint.
Installation and Setup
- Lintier (⭐33) - CLI to quickly scaffold an ESLint & Prettier setup in a TypeScript project.