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
145061β
26497π΄
Airbnb) - Shareable config for145061β
26497π΄
Airbnb's style guide).3β
2π΄
Airbnb-babel) - Airbnb's ESLint config with Babel Support.1046β
97π΄
Airbnb-typescript) - Airbnb's ESLint config with TypeScript support.2647β
315π΄
Alloy) - Progressive ESLint config for your React/Vue/TypeScript projects.24998β
4522π΄
ESLint) - Contains the ESLint configuration used for projects maintained by the ESLint team.- π Facebook - Sharable config for Facebook's style guide.
8β
3π΄
Feedzai) - Feedzai's shareable config for JavaScript/React projects.102709β
26843π΄
React App) - Sharable config for π React projects.465β
56π΄
Shopify) - Shareable config for253β
38π΄
Shopify's style guide).1257β
35π΄
Vercel) - Vercel Engineering's composable eslint configuration used in all their codebases.28β
20π΄
Wikimedia) - Shareable config for π Wikimedia's style guide, used by π MediaWiki.
402β
13π΄
Auto) - Automatically configure ESLint based on your project's dependencies.594β
30π΄
Canonical) - Shareable config for18β
5π΄
Canonical style guide).
2606β
563π΄
Standard) - Shareable config for JavaScript29092β
2329π΄
Standard Style).267β
45π΄
XO) - Shareable config for7679β
290π΄
XO).3942β
436π΄
Antfu Eslint Config) - Anthony's ESLint config preset.
50β
8π΄
Adjunct) - A reasonable collection of plugins to use alongside your main ESLint configuration.6β
1π΄
Ash-Nazg) - One config to rule them all!7β
0π΄
Cecilia) - ESLint configuration for awesome projects.1β
0π΄
clean-typescript) - Enforce classic JavaScript featuress in TypeScript codebase by banning excessive keywords.?β
?π΄
ES) - Shareable config for very strict code.417β
13π΄
Hardcore) - The most strict (but practical) ESLint config out there.68β
3π΄
Problems) - Shareable config that only catches actual problems, and doesn't enforce stylistic preferences.4β
1π΄
Supermind) - Shareable config for Supermind style.108β
7π΄
Sheriff) - Comprehensive and highly opinionated Eslint configuration. Typescript oriented.
6β
1π΄
Node.js Standard Style) - Node.js core config.5455β
254π΄
eslint-config-prettier) - Prettier config for ESlint maintained by Prettier team.29092β
2329π΄
Standard) - JavaScript Standard Style.5β
0π΄
Superlint) - JavaScript Supermind Style.7679β
290π΄
XO) - JavaScript happiness style linter β€οΈ.84β
5π΄
Healthier) - Code style agnostic version of Standard, perfect companion to Prettier.
341β
4π΄
depend) - Helps detect dependency tree bloat and redundant polyfills.295β
54π΄
GitHub) - Misc. rules from GitHub.1194β
73π΄
SonarJS) - Rules detecting bugs and suspicious patterns.4246β
367π΄
Unicorn) - Various awesome ESLint rules.26β
10π΄
@mysticatea/eslint-plugin) - Misc. rules.2β
0π΄
@brettz9/eslint-plugin) - Misc. rules. of@mysticatea
without the personal config.
3075β
105π΄
Compat) - Lint browser compatibility of APIs used (caniuse as an ESLint plugin).65β
13π΄
ecmascript-compat) - Disable ECMAScript language features not supported by your browserslist targets.117β
10π΄
es-x) - Disable specific ECMAScript language versions or individual features. Properly maintained fork of no longer maintainedeslint-plugin-es
.54β
18π΄
es5) - ESLint plugin for ES5 users (forbid ES2015+ usage).14β
3π΄
ie11) - Detect unsupported ES6 features in IE11.
152β
34π΄
CSS-modules) - Lint undefined or unused rules for css modules.17467β
1109π΄
Emotion) - ESLint rules for emotion.- Styled Components
65β
9π΄
Better Styled Components) - Auto fixable ESlint's rules for styled components.144β
21π΄
styled-components-a11y) - A11y for Styled Components.
81β
13π΄
deprecate) - Mark functions or modules as deprecated and get lint messages when they are used.330β
38π΄
deprecation) - Identifies use of jsdoc@deprecated
functions.56β
3π΄
disable) - Disable specified plugins using file path patterns and inline comments.
432β
51π΄
HTML) - Linting for JavaScript inside of HTML<script>
tags.404β
61π΄
Markdown) - Linting for JavaScript inside of Markdown.
1631β
222π΄
Angular) - Linting rules for Angular (v2+).618β
131π΄
AngularJS) - Linting rules to adhere to the23867β
4152π΄
John Papa's AngularJS Styleguide).307β
22π΄
Astro) - Plugin for π Astro components.95β
11π΄
Backbone) - Linting rules for Backbone.58β
12π΄
Custom Elements) - Rules by GitHub for Custom Elements.262β
203π΄
Ember) - Linting rules for Ember.21β
10π΄
Hapi) - Linting rules for hapi.44372β
5186π΄
Meteor) - Meteor specific linting rules for ESLint.- React
22β
3π΄
JSX a11y) - Accessibility rules on JSX elements.8985β
2772π΄
React) - Linting rules for React and JSX.228526β
46767π΄
React Hooks) - Linting rules for React Hooks.721β
130π΄
React Native) - React Native specific linting rules.82β
17π΄
React-Redux) - React-Redux specific linting rules.
222β
27π΄
Solid) - Linting rules for Solid and JSX.304β
36π΄
Svelte) - Linting rules for Svelte v3 Components.- Vue
4457β
666π΄
VueJS) - Plugin for VueJS.98β
10π΄
VueJS Scoped CSS) - Plugin for Scoped CSS in VueJS.
- π AssemblyScript - Rules for enforcing restrictions on TypeScript toward AssemblyScript compliance.
43225β
5637π΄
Babel) - Adds replacements for built-in rules to include Babel features.11β
0π΄
Coffee) - Enables linting CoffeeScript files with, with optional linting rules from the Coffeelint library.196β
26π΄
eslint-plugin-eslint-plugin) - An ESLint plugin for linting ESLint plugins.- Flow
1077β
154π΄
Flow) - Flow type linting rules.402β
32π΄
Flow Errors) - Run Flow as an ESLint plugin.
157β
28π΄
HTML) - ESLint plugin for HTML.- JSON
209β
29π΄
JSON) - Lint your JSON files.41β
3π΄
JSON, package.json) - Lint, format, and auto-fix your JSON files. Sort yourpackage.json
.198β
17π΄
JSON with Comments) - ESLint plugin for JSON, JSONC and JSON5.71β
5π΄
JSON Schema) - Validates data defined in JavaScript, JSON, YAML and TOML using JSON Schema Validator.
264β
32π΄
MDX) - ESLint Parser/Plugin for MDX.229β
41π΄
N) - Additional ESLint's rules for Node.js. Properly maintained fork of no longer maintainedeslint-plugin-node
.93β
22π΄
SQL) - SQL linting rules for ESLint.26β
2π΄
TOML) - ESLint plugin for TOML.15213β
2724π΄
TypeScript) - Linting rules for TypeScript.121β
13π΄
YAML) - ESLint plugin for YAML.
- GraphQL
798β
104π΄
dotansimha/graphql-eslint) - Validates, prettifies and checks your GraphQL operations and GraphQL schema for best-practices.1211β
103π΄
apollostack/eslint-plugin-graphql) - Check your GraphQL query strings against a schema.
17β
3π΄
TypeGraphQL) - Linting rules for TypeGraphQL, targeted at finding common mistakes.32β
8π΄
jQuery) - Linting rules for jQuery, including versioned configs for deprecated features.1090β
158π΄
JSDoc) - Linting rules for JSDoc comments (including the JavaScript within@example
).- Lodash
276β
65π΄
Lodash) - Lodash specific linting rules.151β
29π΄
Lodash/fp) - Lodash/fp specific linting rules.17β
2π΄
Lodash template) - Plugin for Lodash template/Underscore template.4β
2π΄
Microtemplates) (Used in Lodash and Underscore.js)
19β
3π΄
Mongodb) - Mongodb native Node.js driver linting rules.118β
11π΄
Ramda) - Ramda specific linting rules.29β
16π΄
RequireJS) - Linting rules for RequireJS.1486β
70π΄
Tailwind CSS) - Linting rules for Tailwind CSS classnames.
178β
13π΄
Diff) - Run ESLint on your changed lines only. Also supports CI!10β
0π΄
Misc) - Miscellaneous rules including rules for creating custom checks and wrapping (modifying) third-party rules.26β
2π΄
Notice) - An eslint rule that checks the top of files and fixes them too!16β
3π΄
Only-Error) - Convert all rules to errors.162β
14π΄
Only-Warn) - Convert all rules to warnings.701β
40π΄
PutOut) - an ESLint plugin integrates701β
40π΄
putout) linter into ESLint.175β
5π΄
TypeLint) - Introduces types, based on existing schemas (Swagger, Redux) and linting access to object properties, preventingundefined
errors.33β
2π΄
Woke) - Helps catch insensitive words, promoting an inclusive codebase.
94β
7π΄
array-func) - Avoid redundancy when using es2015 array methods and functions.306β
14π΄
arrow functions) - ESLint rules to ensure proper arrow function definitions.525β
9π΄
boundaries) - Ensures that your architecture boundaries are respected by the elements in your project checking file structure and dependencies.51β
8π΄
@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
.293β
17π΄
eslint-plugin-hexagonal-architecture) - A plugin that helps you to enforce hexagonal architecture best practices.36β
3π΄
eslint-plugin-write-good-comments) - Enforce good writing style in comments.25β
1π΄
eslint-plugin-exception-handling) - Lints unhandled functions that might throw errors.970β
36π΄
fp) - ESLint rules for functional programming.797β
29π΄
functional) - ESLint rules to disable mutation and promote fp in JavaScript and TypeScript.912β
17π΄
Immutable) - Disable all mutation in JavaScript.5533β
1565π΄
import) - Linting of ES2015+ import/export syntax, and prevent issues with misspelling of file paths and import names.420β
21π΄
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.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.13β
2π΄
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 ofthis
withbind
or setting state in constructors.27β
4π΄
no-inferred-method-name) - Custom rule for ESLint that checks for inferred method names within object literals.126β
5π΄
no-loops) - It's 2019 and you still use loops?5β
0π΄
no-restricted-syntax) - Show queried syntax's content in messages.56β
4π΄
no-use-extend-native) - Prevent using extended native objects.939β
91π΄
Promise) - Best practices when working with promises.29β
1π΄
pure) - Enforce pure functions (without side effects).- π ReDoS - ESLint plugin for finding possible ReDoS vulnerabilities.
5β
0π΄
ReDoSDetector) - ESLint plugin for finding possible ReDoS vulnerabilities.694β
10π΄
RegExp) - ESLint plugin for finding regexp mistakes and style guide violations.97β
23π΄
sort-keys-fix) - Adds fixer for ESLintsort-keys
rule.16β
1π΄
this) - Write pure functions, don't allowthis
.19β
2π΄
toplevel) - An eslint plugin for disallow side effect at module toplevel.
9β
0π΄
DOM)75β
7π΄
Optimize Regex) - Optimize regex literals.- Perf-Standard
23β
3π΄
plugin) and3β
0π΄
Config)
135β
4π΄
no-secrets) - An eslint plugin that detects potential secrets/credentials.230β
37π΄
no-unsanitized) - Checks forinnerHTML
,outerHTML
, etc.9β
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.- ScanJS
88β
11π΄
config) and28β
6π΄
plugin) - Security-related rules. 2208β
108π΄
Security) - ESLint rules for Node Security.66β
16π΄
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.
14β
1π΄
editorconfig) - Derive rules from π.editorconfig
.319β
35π΄
filenames) - Ensure consistent filenames for your JavaScript files. No longer maintained and does not work with ESlint 9 at all.2081β
71π΄
Simple import sort) - Easy autofixable import sorting.1890β
39π΄
perfectionist sorting) - Sort objects, imports, TypeScript types, enums, JSX props, etc.17β
1π΄
Switch case) - Switch-case-specific linting rules for ESLint.4β
1π΄
padding) - Allows/disallows padding between statements.53β
0π΄
paths) - Use paths from tsconfig/jsconfig and auto fix relative paths to aliases.
230β
49π΄
AVA) - Linting rules for AVA.- Chai
27β
13π΄
expect practices)53β
10π΄
with unused expressions)1β
1π΄
permitted keywords)4β
2π΄
with chai-as-promised plugin)
2β
0π΄
globals)
7β
5π΄
Cucumber) - Linting rules for Cucumber.705β
89π΄
Cypress) - Linting rules for Cypress.95β
58π΄
Jasmine) - Linting rules for Jasmine.- Jest
1129β
230π΄
Enforcing practices) - Linting rules for Jest.156β
13π΄
Enforcing consistent formatting) - Formatting rules for Jest.- π Jest-async - Async linting rule for Jest.
360β
40π΄
Jest-DOM) - Linting rules for Jest-DOM.
- Mocha
280β
61π΄
Enforcing practices) - Linting rules for Mocha.?β
?π΄
Enforcing manageability)
272β
38π΄
Playwright) - Linting rules for Playwright.30β
22π΄
QUnit) - Linting rules for QUnit.4β
2π΄
TestCafe-Community) - TestCafe linting rules with env globals (fork from15β
7π΄
TestCafe globals)).989β
139π΄
Testing Library) - Linting rules for Testing Library.
43225β
5637π΄
babel-eslint-parser) - Allows you to lint ALL valid Babel code with the fantastic ESLint.15213β
2724π΄
TypeScript) - A TypeScript parser that produces output compatible with ESLint.44β
9π΄
BrightScript) - BrightScript plugin for Roku development. Includes Parser and Rules.798β
104π΄
GraphQL) - Parser for the GraphQL AST. Includes parser, plugin, processor (for non-graphql files) and rules.
35β
5π΄
html) - A enhanced ESLint formatter.6β
5π΄
badger) - Make SVG-based badges summarizing ESLint results (e.g., for use on a README).41β
0π΄
git-log) - ESLint Formatter featuring Git Author, Date, and Hash.102β
3π΄
github) - See ESLint errors and warnings directly in pull requests.- π gitlab - Output ESLint results in the GitLab code quality results.
124β
0π΄
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.
12β
3π΄
summary-chart) - Format ESLint output into a bar chart.
102709β
26843π΄
confusing-browser-globals) - A curated list of browser globals that commonly cause confusion and are not recommended to use without an explicit window. qualifier.399β
116π΄
ES and browser globals) (originally from ESLint)2β
0π΄
chai globals)15β
7π΄
TestCafe globals) -fixture
&test
globals for TestCafe.
361β
26π΄
eslint-define-config) - Provide adefineConfig
function for.eslintrc.js
files.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.206β
36π΄
eslint-find-rules) - Find built-in ESLint rules you don't have in your custom config.20β
4π΄
eslint-index) - CLI for finding and managing rules in ESLint config files.361β
9π΄
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.780β
29π΄
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--fix
and codemods don't cut it.30β
31π΄
eslint-rule-documentation) - Find the url for the documentation of an ESLint rule.194β
29π΄
eslint-watch) - Run ESLint with watch mode.15β
19π΄
codacy-eslint) - Docker used at π Codacy to run ESLint.661β
54π΄
esprint) - Run ESLint across multiple threads.229β
51π΄
generator-eslint) - Generate ESLint plugin and rules with Yeoman.6β
1π΄
editor-info) - Detect whether one is within an editor/IDE and which type, allowing one to tweak ESLint configuration accordingly.19β
0π΄
eslint-dashboard) - Interactive ESLint workflow that lives in your terminal.129β
10π΄
eslint-remote-tester) - CLI tool for testing given ESlint rules against multiple repositories at once.
91β
6π΄
eslint-doc-generator) - Generate documentation for your ESLint plugin including a rules table for your readme and header for your rule docs.10β
7π΄
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.
- π Linting JavaScript with ESLint - Video showing ESLint setup and basics.
- π Linting React JSX with ESLint (in ES6) - Video showing how to use React and JSX with ESLint.
- π Plugin Module with Mixins - Article on how to write a plugin as a node module containing modular mixin configuration.
- Writing a rule to spot undeclared props hiding in plain sight - Article about creating rules that require scope analysis.
23β
0π΄
Lintier) - CLI to quickly scaffold an ESLint & Prettier setup in a TypeScript project.
4350β
226π΄
dustinspecker/awesome-eslint)