/fucking-awesome-eslint

A list of awesome ESLint plugins, configs, etc. With repository stars⭐ and forks🍴

Awesome ESLint Awesome

eslint

A list of awesome ESLint configs, plugins, etc.

If you want to contribute, please read the contribution guidelines.

Contents

Configs

Configs by Well-Known Companies/Organizations

  • 145061⭐  26497🍴 Airbnb) - Shareable config for 145061⭐  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 for    253⭐     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.

Other Prominent Configs (100 stars or so)

  •    402⭐     13🍴 Auto) - Automatically configure ESLint based on your project's dependencies.
  •    594⭐     30🍴 Canonical) - Shareable config for     18⭐      5🍴 Canonical style guide).
  •   2606⭐    563🍴 Standard) - Shareable config for JavaScript  29092⭐   2329🍴 Standard Style).
  •    267⭐     45🍴 XO) - Shareable config for   7679⭐    290🍴 XO).
  •   3942⭐    436🍴 Antfu Eslint Config) - Anthony's ESLint config preset.

Other Configs

  •     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.

Preconfigured Configs with ESLint Set up

  •      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.

Plugins

Code Quality

  •    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.

Compatibility

  •   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 maintained eslint-plugin-es.
  •     54⭐     18🍴 es5) - ESLint plugin for ES5 users (forbid ES2015+ usage).
  •     14⭐      3🍴 ie11) - Detect unsupported ES6 features in IE11.

CSS in JS

  •    152⭐     34🍴 CSS-modules) - Lint undefined or unused rules for css modules.
  •  17467⭐   1109🍴 Emotion) - ESLint rules for emotion.
  • Styled Components

Deprecation

  •     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.

Embedded

  •    432⭐     51🍴 HTML) - Linting for JavaScript inside of HTML <script> tags.
  •    404⭐     61🍴 Markdown) - Linting for JavaScript inside of Markdown.

Frameworks

  •   1631⭐    222🍴 Angular) - Linting rules for Angular (v2+).
  •    618⭐    131🍴 AngularJS) - Linting rules to adhere to the  23867⭐   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.

Languages and Environments

  • 🌎 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 your package.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 maintained eslint-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.

Libraries

  • GraphQL
  •     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.

Misc

  •    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 integrates    701⭐     40🍴 putout) linter into ESLint.
  •    175⭐      5🍴 TypeLint) - Introduces types, based on existing schemas (Swagger, Redux) and linting access to object properties, preventing undefined errors.
  •     33⭐      2🍴 Woke) - Helps catch insensitive words, promoting an inclusive codebase.

Practices and Specific ES Features

  •     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 maintained eslint-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 of eslint-plugin-import, but which breaks backwards compatibility.
  •     26⭐      1🍴 new-with-error) - Require errors to be thrown using new.
  •      3⭐      0🍴 no-argument-spread) - Lints against expressions like Math.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 of this with bind 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 ESLint sort-keys rule.
  •     16⭐      1🍴 this) - Write pure functions, don't allow this.
  •     19⭐      2🍴 toplevel) - An eslint plugin for disallow side effect at module toplevel.

Performance

  •      9⭐      0🍴 DOM)
  •     75⭐      7🍴 Optimize Regex) - Optimize regex literals.
  • Perf-Standard     23⭐      3🍴 plugin) and      3⭐      0🍴 Config)

Security

  •    135⭐      4🍴 no-secrets) - An eslint plugin that detects potential secrets/credentials.
  •    230⭐     37🍴 no-unsanitized) - Checks for innerHTML, 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) and     28⭐      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.

Style

Testing Tools

Parsers

  •  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.

Formatters

  •     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.

Globals

  • 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.

Tools

  •    361⭐     26🍴 eslint-define-config) - Provide a defineConfig 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.

Developing for ESLint

  •     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.

Tutorials

Installation and Setup

  •     23⭐      0🍴 Lintier) - CLI to quickly scaffold an ESLint & Prettier setup in a TypeScript project.

Source

  4350⭐    226🍴 dustinspecker/awesome-eslint)