A list of awesome ESLint configs, plugins, etc.
If you want to contribute, please read the contribution guidelines.
- Configs
- Preconfigured Configs with ESLint Set up
- Plugins
- Parsers
- Formatters
- Globals
- Tools
- Developing for ESLint
- Tutorials
- Installation and Setup
148012β26782π΄Airbnb) - Shareable config for148012β26782π΄Airbnb's style guide).3β2π΄Airbnb-babel) - Airbnb's ESLint config with Babel Support.2645β312π΄Alloy) - Progressive ESLint config for your React/Vue/TypeScript projects.26751β4874π΄ESLint) - Contains the ESLint configuration used for projects maintained by the ESLint team.- π Facebook - Sharable config for Facebook's style guide.
9β3π΄Feedzai) - Feedzai's shareable config for JavaScript/React projects.487β57π΄Shopify) - Shareable config for260β37π΄Shopify's style guide).33β23π΄Wikimedia) - Shareable config for π Wikimedia's style guide, used by π MediaWiki.
404β13π΄Auto) - Automatically configure ESLint based on your project's dependencies.621β30π΄Canonical) - Shareable config for19β5π΄Canonical style guide).
2648β557π΄Standard) - Shareable config for JavaScript29409β2319π΄Standard Style).282β40π΄XO) - Shareable config for7942β301π΄XO).5967β568π΄Antfu Eslint Config) - Anthony's ESLint config preset.
52β8π΄Adjunct) - A reasonable collection of plugins to use alongside your main ESLint configuration.8β1π΄Ash-Nazg) - One config to rule them all!7β0π΄Cecilia) - ESLint configuration for awesome projects.?β?π΄clean-typescript) - Enforce classic JavaScript featuress in TypeScript codebase by banning excessive keywords.460β15π΄Hardcore) - The most strict (but practical) ESLint config out there.67β3π΄Problems) - Shareable config that only catches actual problems, and doesn't enforce stylistic preferences.4β1π΄Supermind) - Shareable config for Supermind style.176β11π΄Sheriff) - Comprehensive and highly opinionated Eslint configuration. Typescript oriented.
6β1π΄Node.js Standard Style) - Node.js core config.5844β263π΄eslint-config-prettier) - Prettier config for ESlint maintained by Prettier team.29409β2319π΄Standard) - JavaScript Standard Style.5β0π΄Superlint) - JavaScript Supermind Style.7942β301π΄XO) - JavaScript happiness style linter β€οΈ.
469β8π΄depend) - Helps detect dependency tree bloat and redundant polyfills.323β63π΄GitHub) - Misc. rules from GitHub.1177β192π΄SonarJS) - Rules detecting bugs and suspicious patterns.4876β424π΄Unicorn) - Various awesome ESLint rules.26β10π΄@mysticatea/eslint-plugin) - Misc. rules.2β0π΄@brettz9/eslint-plugin) - Misc. rules. of@mysticateawithout the personal config.298β2π΄De Morgan) - Transforms logical expressions in code to make them easier to understand.10β2π΄eslint-plugin-code-complete) - A custom ESLint plugin that enforces principles of clean, maintainable software design β inspired by Code Complete.
3157β115π΄Compat) - Lint browser compatibility of APIs used (caniuse as an ESLint plugin).70β14π΄ecmascript-compat) - Disable ECMAScript language features not supported by your browserslist targets.148β10π΄es-x) - Disable specific ECMAScript language versions or individual features. Properly maintained fork of no longer maintainedeslint-plugin-es.55β17π΄es5) - ESLint plugin for ES5 users (forbid ES2015+ usage).15β3π΄ie11) - Detect unsupported ES6 features in IE11.
154β35π΄CSS-modules) - Lint undefined or unused rules for css modules.17949β1137π΄Emotion) - ESLint rules for emotion.- Styled Components
67β9π΄Better Styled Components) - Auto fixable ESlint's rules for styled components.154β24π΄styled-components-a11y) - A11y for Styled Components.
31β1π΄vanilla-extract) - An ESLint plugin for enforcing CSS property ordering in10258β332π΄vanilla-extract CSS) styles.
84β14π΄deprecate) - Mark functions or modules as deprecated and get lint messages when they are used.56β3π΄disable) - Disable specified plugins using file path patterns and inline comments.
449β55π΄HTML) - Linting for JavaScript inside of HTML<script>tags.528β84π΄Markdown) - Linting for JavaScript inside of Markdown.
1768β252π΄Angular) - Linting rules for Angular (v2+).620β128π΄AngularJS) - Linting rules to adhere to the23734β4094π΄John Papa's AngularJS Styleguide).389β31π΄Astro) - Plugin for π Astro components.93β11π΄Backbone) - Linting rules for Backbone.261β209π΄Ember) - Linting rules for Ember.22β9π΄Hapi) - Linting rules for hapi.44758β5258π΄Meteor) - Meteor specific linting rules for ESLint.- React
3560β637π΄JSX a11y) - Accessibility rules on JSX elements.9244β2741π΄React) - Linting rules for React and JSX.241969β50247π΄React Hooks) - Linting rules for React Hooks.761β132π΄React Native) - React Native specific linting rules.84β18π΄React-Redux) - React-Redux specific linting rules.316β21π΄React Refresh) - Improve HMR experience when using Vite.
254β37π΄Solid) - Linting rules for Solid and JSX.378β59π΄Svelte) - Linting rules for Svelte v3 Components.- Vue
4597β697π΄VueJS) - Plugin for VueJS.107β12π΄VueJS Scoped CSS) - Plugin for Scoped CSS in VueJS.
43834β5788π΄Babel) - Adds replacements for built-in rules to include Babel features.225β33π΄eslint-plugin-eslint-plugin) - An ESLint plugin for linting ESLint plugins.- Flow
1070β153π΄Flow) - Flow type linting rules.403β23π΄Flow Errors) - Run Flow as an ESLint plugin.
250β52π΄HTML) - ESLint plugin for HTML.- JSON
217β28π΄JSON) - Lint your JSON files.41β3π΄JSON, package.json) - Lint, format, and auto-fix your JSON files. Sort yourpackage.json.228β23π΄JSON with Comments) - ESLint plugin for JSON, JSONC and JSON5.86β9π΄JSON Schema) - Validates data defined in JavaScript, JSON, YAML and TOML using JSON Schema Validator.
296β33π΄MDX) - ESLint Parser/Plugin for MDX.319β55π΄N) - Additional ESLint's rules for Node.js. Properly maintained fork of no longer maintainedeslint-plugin-node.110β24π΄SQL) - SQL linting rules for ESLint.29β5π΄TOML) - ESLint plugin for TOML.16042β2854π΄TypeScript) - Linting rules for TypeScript.164β15π΄YAML) - ESLint plugin for YAML.
- GraphQL
831β110π΄dotansimha/graphql-eslint) - Validates, prettifies and checks your GraphQL operations and GraphQL schema for best-practices.1217β92π΄apollostack/eslint-plugin-graphql) - Check your GraphQL query strings against a schema.
19β2π΄TypeGraphQL) - Linting rules for TypeGraphQL, targeted at finding common mistakes.32β9π΄jQuery) - Linting rules for jQuery, including versioned configs for deprecated features.1191β170π΄JSDoc) - Linting rules for JSDoc comments (including the JavaScript within@example).- Lodash
278β65π΄Lodash) - Lodash specific linting rules.152β24π΄Lodash/fp) - Lodash/fp specific linting rules.17β3π΄Lodash template) - Plugin for Lodash template/Underscore template.4β2π΄Microtemplates) (Used in Lodash and Underscore.js)
20β3π΄Mongodb) - Mongodb native Node.js driver linting rules.117β11π΄Ramda) - Ramda specific linting rules.29β16π΄RequireJS) - Linting rules for RequireJS.2025β108π΄Tailwind CSS) - Linting rules for Tailwind CSS classnames.
208β18π΄Diff) - Run ESLint on your changed lines only. Also supports CI!12β0π΄Misc) - Miscellaneous rules including rules for creating custom checks and wrapping (modifying) third-party rules.26β3π΄Notice) - An eslint rule that checks the top of files and fixes them too!17β3π΄Only-Error) - Convert all rules to errors.182β16π΄Only-Warn) - Convert all rules to warnings.778β43π΄PutOut) - an ESLint plugin integrates778β43π΄putout) linter into ESLint.173β5π΄TypeLint) - Introduces types, based on existing schemas (Swagger, Redux) and linting access to object properties, preventingundefinederrors.38β2π΄Woke) - Helps catch insensitive words, promoting an inclusive codebase.
96β7π΄array-func) - Avoid redundancy when using es2015 array methods and functions.311β14π΄arrow functions) - ESLint rules to ensure proper arrow function definitions.759β17π΄boundaries) - Ensures that your architecture boundaries are respected by the elements in your project checking file structure and dependencies.85β10π΄@eslint-community/eslint-plugin-eslint-comments) - Best practices about ESLint directive comments (/*eslint-disable*/, etc.). Properly maintained fork of no longer maintainedeslint-plugin-eslint-comments.19β0π΄eslint-plugin-error-cause) - A plugin to preserve original error context when re-throwing exceptions.311β17π΄eslint-plugin-hexagonal-architecture) - A plugin that helps you to enforce hexagonal architecture best practices.41β3π΄eslint-plugin-write-good-comments) - Enforce good writing style in comments.55β3π΄eslint-plugin-exception-handling) - Lints unhandled functions that might throw errors.972β36π΄fp) - ESLint rules for functional programming.953β33π΄functional) - ESLint rules to disable mutation and promote fp in JavaScript and TypeScript.912β19π΄Immutable) - Disable all mutation in JavaScript.5863β1538π΄import) - Linting of ES2015+ import/export syntax, and prevent issues with misspelling of file paths and import names.633β55π΄import-x) - Linting of ES2015+ import/export syntax, and prevent issues with misspelling of file paths and import names. Lightweight fork ofeslint-plugin-import, but which breaks backwards compatibility.15β0π΄Math) - ESLint plugin related to Math object and Number.26β1π΄new-with-error) - Require errors to be thrown usingnew.
3β0π΄no-argument-spread) - Lints against expressions likeMath.max(...args)that can lead to a stack overflow for large arrays.16β4π΄no-comments) - Prevents leaking comments into production if bundler is not used and stops developers from commenting out old lines of code.12β1π΄no-constructor-bind) - Encourages use of class properties by reporting use ofthiswithbindor setting state in constructors.27β4π΄no-inferred-method-name) - Custom rule for ESLint that checks for inferred method names within object literals.130β5π΄no-loops) - It's 2019 and you still use loops?5β0π΄no-restricted-syntax) - Show queried syntax's content in messages.57β4π΄no-use-extend-native) - Prevent using extended native objects.984β96π΄Promise) - Best practices when working with promises.32β1π΄pure) - Enforce pure functions (without side effects).- π ReDoS - ESLint plugin for finding possible ReDoS vulnerabilities.
12β1π΄ReDoSDetector) - ESLint plugin for finding possible ReDoS vulnerabilities.749β14π΄RegExp) - ESLint plugin for finding regexp mistakes and style guide violations.102β24π΄sort-keys-fix) - Adds fixer for ESLintsort-keysrule.16β1π΄this) - Write pure functions, don't allowthis.20β3π΄toplevel) - An eslint plugin for disallow side effect at module toplevel.
9β0π΄DOM)76β7π΄Optimize Regex) - Optimize regex literals.- Perf-Standard
24β3π΄plugin) and3β0π΄Config)
161β6π΄no-secrets) - An eslint plugin that detects potential secrets/credentials.239β39π΄no-unsanitized) - Checks forinnerHTML,outerHTML, etc.11β0π΄pii) - 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.2313β106π΄Security) - ESLint rules for Node Security.69β17π΄xss) - Tries to detect XSS issues in codebase before they end up in production.
- π 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.
17β1π΄editorconfig) - Derive rules from π.editorconfig.323β34π΄filenames) - Ensure consistent filenames for your JavaScript files. No longer maintained and does not work with ESlint 9 at all.2396β72π΄Simple import sort) - Easy autofixable import sorting.2774β57π΄perfectionist sorting) - Sort objects, imports, TypeScript types, enums, JSX props, etc.0β0π΄split-and-sort-imports) - Sorts imports and splits 'multiple' imports into single line imports.18β3π΄Switch case) - Switch-case-specific linting rules for ESLint.6β2π΄padding) - Allows/disallows padding between statements.86β2π΄paths) - 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.
230β50π΄AVA) - Linting rules for AVA.- Chai
28β14π΄expect practices)56β9π΄with unused expressions)1β1π΄permitted keywords)4β2π΄with chai-as-promised plugin)
2β0π΄globals)
8β5π΄Cucumber) - Linting rules for Cucumber.722β94π΄Cypress) - Linting rules for Cypress.101β56π΄Jasmine) - Linting rules for Jasmine.- Jest
1171β248π΄Enforcing practices) - Linting rules for Jest.156β14π΄Enforcing consistent formatting) - Formatting rules for Jest.- π Jest-async - Async linting rule for Jest.
368β41π΄Jest-DOM) - Linting rules for Jest-DOM.
- Mocha
289β70π΄Enforcing practices) - Linting rules for Mocha.?β?π΄Enforcing manageability)
356β52π΄Playwright) - Linting rules for Playwright.31β24π΄QUnit) - Linting rules for QUnit.4β2π΄TestCafe-Community) - TestCafe linting rules with env globals (fork from15β7π΄TestCafe globals)).1041β154π΄Testing Library) - Linting rules for Testing Library.
43834β5788π΄babel-eslint-parser) - Allows you to lint ALL valid Babel code with the fantastic ESLint.16042β2854π΄TypeScript) - A TypeScript parser that produces output compatible with ESLint.48β9π΄BrightScript) - BrightScript plugin for Roku development. Includes Parser and Rules.831β110π΄GraphQL) - Parser for the GraphQL AST. Includes parser, plugin, processor (for non-graphql files) and rules.
39β6π΄html) - A enhanced ESLint formatter.7β5π΄badger) - Make SVG-based badges summarizing ESLint results (e.g., for use on a README).42β0π΄git-log) - ESLint Formatter featuring Git Author, Date, and Hash.109β3π΄github) - See ESLint errors and warnings directly in pull requests.- π gitlab - Output ESLint results in the GitLab code quality results.
135β1π΄mo) - 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.
13β3π΄summary-chart) - Format ESLint output into a bar chart.
103936β27163π΄confusing-browser-globals) - A curated list of browser globals that commonly cause confusion and are not recommended to use without an explicit window. qualifier.545β128π΄ES and browser globals) (originally from ESLint)2β0π΄chai globals)15β7π΄TestCafe globals) -fixture&testglobals for TestCafe.
2β1π΄es-file-traverse) - 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.214β38π΄eslint-find-rules) - Find built-in ESLint rules you don't have in your custom config.21β4π΄eslint-index) - CLI for finding and managing rules in ESLint config files.442β11π΄eslint-interactive) - The CLI tool to fix huge number of ESLint errors.7β1π΄eslint-multiplexer) - Multiplex eslint results and merge results for common files.878β31π΄eslint-nibble) - Ease into ESLint, by fixing one rule at a time.1β0π΄eslint-plugin-rule-adoption) - An eslint plugin for incremental rule adoption, when--fixand codemods don't cut it.31β31π΄eslint-rule-documentation) - Find the url for the documentation of an ESLint rule.199β28π΄eslint-watch) - Run ESLint with watch mode.16β20π΄codacy-eslint) - Docker used at π Codacy to run ESLint.658β27π΄esprint) - Run ESLint across multiple threads.243β51π΄generator-eslint) - Generate ESLint plugin and rules with Yeoman.7β2π΄editor-info) - Detect whether one is within an editor/IDE and which type, allowing one to tweak ESLint configuration accordingly.20β0π΄eslint-dashboard) - Interactive ESLint workflow that lives in your terminal.131β14π΄eslint-remote-tester) - CLI tool for testing given ESlint rules against multiple repositories at once.
106β16π΄eslint-doc-generator) - Generate documentation for your ESLint plugin including a rules table for your readme and header for your rule docs.11β8π΄eslint-docgen) - Automatically generate ESLint plugin documentation from rule metadata and test cases.
- π 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.
33β0π΄Lintier) - CLI to quickly scaffold an ESLint & Prettier setup in a TypeScript project.
4682β 244π΄ dustinspecker/awesome-eslint)