awesome-eslint
A list of awesome ESLint plugins, configs, etc.
AI summary
ESLint config library
A curated list of popular ESLint configurations and plugins for code quality and style enforcement in JavaScript projects.
- stars
- 4.4K
- forks
- 226
- watching
- 69
- awesome lists
- 4
- entries
- 212
What's in the list
212 links in 41 sections, with live GitHub stats.activeno commit in 2y
Configs / Configs by Well-Known Companies/Organizations
Airbnb
Shareable config for
Airbnb-babel
Airbnb's ESLint config with Babel Support
Airbnb-typescript
Airbnb's ESLint config with TypeScript support
Alloy
Progressive ESLint config for your React/Vue/TypeScript projects
ESLint
Contains the ESLint configuration used for projects maintained by the ESLint team
- Facebook
Sharable config for Facebook's style guide
Feedzai
Feedzai's shareable config for JavaScript/React projects
React App
Sharable config for projects
Shopify
Shareable config for
Vercel
Vercel Engineering's composable eslint configuration used in all their codebases
Wikimedia
Shareable config for , used by
Configs / Other Prominent Configs (100 stars or so)
Auto
Automatically configure ESLint based on your project's dependencies
Canonical
Shareable config for
Standard
Shareable config for JavaScript
XO
Shareable config for
Antfu Eslint Config
Anthony's ESLint config preset
Configs / Other Configs
Adjunct
A reasonable collection of plugins to use alongside your main ESLint configuration
Ash-Nazg
One config to rule them all!
Cecilia
ESLint configuration for awesome projects
clean-typescript
Enforce classic JavaScript featuress in TypeScript codebase by banning excessive keywords
- ES
Shareable config for very strict code
Hardcore
The most strict (but practical) ESLint config out there
Problems
Shareable config that only catches actual problems, and doesn't enforce stylistic preferences
Supermind
Shareable config for Supermind style
Sheriff
Comprehensive and highly opinionated Eslint configuration. Typescript oriented
Preconfigured Configs with ESLint Set up
Node.js Standard Style
Node.js core config
eslint-config-prettier
Prettier config for ESlint maintained by Prettier team
Standard
JavaScript Standard Style
Superlint
JavaScript Supermind Style
XO
JavaScript happiness style linter ❤️
Healthier
Code style agnostic version of Standard, perfect companion to Prettier
Plugins / Code Quality
depend
Helps detect dependency tree bloat and redundant polyfills
GitHub
Misc. rules from GitHub
SonarJS
Rules detecting bugs and suspicious patterns
Unicorn
Various awesome ESLint rules
@mysticatea/eslint-plugin
Misc. rules
@brettz9/eslint-plugin
Misc. rules. of without the personal config
Plugins / Compatibility
Compat
Lint browser compatibility of APIs used ( as an ESLint plugin)
ecmascript-compat
Disable ECMAScript language features not supported by your browserslist targets
es-x
Disable specific ECMAScript language versions or individual features. Properly maintained fork of no longer maintained
es5
ESLint plugin for ES5 users (forbid ES2015+ usage)
ie11
Detect unsupported ES6 features in IE11
Plugins / CSS in JS
CSS-modules
Lint undefined or unused rules for css modules
Emotion
ESLint rules for emotion
Plugins / CSS in JS / Styled Components
Better Styled Components
Auto fixable ESlint's rules for styled components
styled-components-a11y
A11y for Styled Components
Plugins / Deprecation
deprecate
Mark functions or modules as deprecated and get lint messages when they are used
deprecation
Identifies use of jsdoc functions
disable
Disable specified plugins using file path patterns and inline comments
Plugins / Embedded
Plugins / Frameworks
Plugins / Frameworks / React
JSX a11y
Accessibility rules on JSX elements
React
Linting rules for React and JSX
React Hooks
Linting rules for React Hooks
React Native
React Native specific linting rules
React-Redux
React-Redux specific linting rules
Plugins / Frameworks
Plugins / Frameworks / Vue
VueJS
Plugin for VueJS
VueJS Scoped CSS
Plugin for Scoped CSS in VueJS
Plugins / Languages and Environments
- AssemblyScript
Rules for enforcing restrictions on TypeScript toward AssemblyScript compliance
Babel
Adds replacements for built-in rules to include Babel features
Coffee
Enables linting CoffeeScript files with, with optional linting rules from the Coffeelint library
eslint-plugin-eslint-plugin
An ESLint plugin for linting ESLint plugins
Plugins / Languages and Environments / Flow
Flow
Flow type linting rules
Flow Errors
Run Flow as an ESLint plugin
Plugins / Languages and Environments
HTML
ESLint plugin for HTML
Plugins / Languages and Environments / JSON
JSON
Lint your JSON files
JSON, package.json
Lint, format, and auto-fix your JSON files. Sort your
JSON with Comments
ESLint plugin for JSON, JSONC and JSON5
JSON Schema
Validates data defined in JavaScript, JSON, YAML and TOML using JSON Schema Validator
Plugins / Languages and Environments
Plugins / 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
Plugins / Libraries
TypeGraphQL
Linting rules for TypeGraphQL, targeted at finding common mistakes
jQuery
Linting rules for jQuery, including versioned configs for deprecated features
JSDoc
Linting rules for JSDoc comments (including the JavaScript within )
Plugins / Libraries / Lodash
Lodash
Lodash specific linting rules
Lodash/fp
Lodash/fp specific linting rules
Lodash template
Plugin for Lodash template/Underscore template
Microtemplates
(Used in Lodash and Underscore.js)
Plugins / Libraries
Mongodb
Mongodb native Node.js driver linting rules
Ramda
Ramda specific linting rules
RequireJS
Linting rules for RequireJS
Tailwind CSS
Linting rules for Tailwind CSS classnames
Plugins / Misc
Diff
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
An eslint rule that checks the top of files and fixes them too!
Only-Error
Convert all rules to errors
Only-Warn
Convert all rules to warnings
PutOut
an ESLint plugin integrates linter into ESLint
TypeLint
Introduces types, based on existing schemas (Swagger, Redux) and linting access to object properties, preventing errors
Woke
Helps catch insensitive words, promoting an inclusive codebase
Plugins / Practices and Specific ES Features
array-func
Avoid redundancy when using es2015 array methods and functions
arrow functions
ESLint rules to ensure proper arrow function definitions
boundaries
Ensures that your architecture boundaries are respected by the elements in your project checking file structure and dependencies
@eslint-community/eslint-plugin-eslint-comments
Best practices about ESLint directive comments ( , etc.). Properly maintained fork of no longer maintained
eslint-plugin-hexagonal-architecture
A plugin that helps you to enforce hexagonal architecture best practices
eslint-plugin-write-good-comments
Enforce good writing style in comments
eslint-plugin-exception-handling
Lints unhandled functions that might throw errors
fp
ESLint rules for functional programming
functional
ESLint rules to disable mutation and promote fp in JavaScript and TypeScript
Immutable
Disable all mutation in JavaScript
import
Linting of ES2015+ import/export syntax, and prevent issues with misspelling of file paths and import names
import-x
Linting of ES2015+ import/export syntax, and prevent issues with misspelling of file paths and import names. Lightweight fork of , but which breaks backwards compatibility
new-with-error
Require errors to be thrown using
no-argument-spread
Lints against expressions like that can lead to a stack overflow for large arrays
no-comments
Prevents leaking comments into production if bundler is not used and stops developers from commenting out old lines of code
no-constructor-bind
Encourages use of class properties by reporting use of with or setting state in constructors
no-inferred-method-name
Custom rule for ESLint that checks for inferred method names within object literals
no-loops
It's 2019 and you still use loops?
no-restricted-syntax
Show queried syntax's content in messages
no-use-extend-native
Prevent using extended native objects
Promise
Best practices when working with promises
pure
Enforce pure functions (without side effects)
- ReDoS
ESLint plugin for finding possible ReDoS vulnerabilities
ReDoSDetector
ESLint plugin for finding possible ReDoS vulnerabilities
RegExp
ESLint plugin for finding regexp mistakes and style guide violations
sort-keys-fix
Adds fixer for ESLint rule
this
Write pure functions, don't allow
toplevel
An eslint plugin for disallow side effect at module toplevel
Plugins / Performance
Optimize Regex
Optimize regex literals
plugin
Perf-Standard and
Plugins / Security
no-secrets
An eslint plugin that detects potential secrets/credentials
no-unsanitized
Checks for , , etc
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
config
ScanJS and - Security-related rules
Security
ESLint rules for Node Security
xss
Tries to detect XSS issues in codebase before they end up in production
Plugins / Style
- const case
Enforce capitalization of constant primitive literals
editorconfig
Derive rules from
filenames
Ensure consistent filenames for your JavaScript files. No longer maintained and does not work with ESlint 9 at all
Simple import sort
Easy autofixable import sorting
perfectionist sorting
Sort objects, imports, TypeScript types, enums, JSX props, etc
Switch case
Switch-case-specific linting rules for ESLint
padding
Allows/disallows padding between statements
paths
Use paths from tsconfig/jsconfig and auto fix relative paths to aliases
Plugins / Testing Tools
AVA
Linting rules for AVA
Plugins / Testing Tools / Chai
Plugins / Testing Tools
Plugins / Testing Tools / Jest
Enforcing practices
Linting rules for Jest
Enforcing consistent formatting
Formatting rules for Jest
- Jest-async
Async linting rule for Jest
Jest-DOM
Linting rules for Jest-DOM
Plugins / Testing Tools / Mocha
Enforcing practices
Linting rules for Mocha
Plugins / Testing Tools
Playwright
Linting rules for Playwright
QUnit
Linting rules for QUnit
TestCafe-Community
TestCafe linting rules with env globals (fork from )
Testing Library
Linting rules for Testing Library
Parsers
babel-eslint-parser
Allows you to lint ALL valid Babel code with the fantastic ESLint
TypeScript
A TypeScript parser that produces output compatible with ESLint
BrightScript
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
A enhanced ESLint formatter
badger
Make SVG-based badges summarizing ESLint results (e.g., for use on a README)
git-log
ESLint Formatter featuring Git Author, Date, and Hash
github
See ESLint errors and warnings directly in pull requests
- gitlab
Output ESLint results in the GitLab code quality results
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
summary-chart
Format ESLint output into a bar chart
Globals
confusing-browser-globals
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
(originally from ESLint)
TestCafe globals
& globals for TestCafe
Tools
eslint-define-config
Provide a function for files
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
eslint-find-rules
Find built-in ESLint rules you don't have in your custom config
eslint-index
CLI for finding and managing rules in ESLint config files
eslint-interactive
The CLI tool to fix huge number of ESLint errors
eslint-multiplexer
Multiplex eslint results and merge results for common files
eslint-nibble
Ease into ESLint, by fixing one rule at a time
eslint-plugin-rule-adoption
An eslint plugin for incremental rule adoption, when and codemods don't cut it
eslint-rule-documentation
Find the url for the documentation of an ESLint rule
eslint-watch
Run ESLint with watch mode
codacy-eslint
Docker used at to run ESLint
esprint
Run ESLint across multiple threads
generator-eslint
Generate ESLint plugin and rules with
editor-info
Detect whether one is within an editor/IDE and which type, allowing one to tweak ESLint configuration accordingly
eslint-dashboard
Interactive ESLint workflow that lives in your terminal
eslint-remote-tester
CLI tool for testing given ESlint rules against multiple repositories at once
Developing for ESLint
eslint-doc-generator
Generate documentation for your ESLint plugin including a rules table for your readme and header for your rule docs
eslint-docgen
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
- 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
Installation and Setup
Lintier
CLI to quickly scaffold an ESLint & Prettier setup in a TypeScript project
Nothing in this list matches your filter.
Featured in 4 awesome lists
Each link jumps to the spot where the list mentions awesome-eslint.
More related projects
thibaudcolas/pre-commit-stylelint14
haydenbbickerton/feature-requests-app20
codelytv/eslint-config-codely86
foxhound87/rfx-stack419
ellerbrock/node-developer-boilerplate89
suevalov/next-blog-firestore269
akoidan/vue-webpack-typescript23
jsynowiec/node-typescript-boilerplate2.8K
royrao2333/template-vite-svelte-ts-tailwind10
odoe/generator-arcgis-js-app42