Skip to content

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

Notifications You must be signed in to change notification settings

Correia-jpv/fucking-awesome-eslint

Repository files navigation

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

  • 143117⭐  26310🍴 Airbnb) - Shareable config for 143117⭐  26310🍴 Airbnb's style guide).
  •      3⭐      2🍴 Airbnb-babel) - Airbnb's ESLint config with Babel Support.
  •   1036⭐     87🍴 Airbnb-typescript) - Airbnb's ESLint config with TypeScript support.
  •   2638⭐    318🍴 Alloy) - Progressive ESLint config for your React/Vue/TypeScript projects.
  •  24611⭐   4434🍴 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.
  • 102225⭐  26686🍴 React App) - Sharable config for 🌎 React projects.
  •    461⭐     55🍴 Shopify) - Shareable config for    253⭐     38🍴 Shopify's style guide).
  •   1187⭐     29🍴 Vercel) - Vercel Engineering's composable eslint configuration used in all their codebases.
  •     28⭐     19🍴 Wikimedia) - Shareable config for 🌎 Wikimedia's style guide, used by 🌎 MediaWiki.

Other Prominent Configs (100 stars or so)

  •    396⭐     13🍴 Auto) - Automatically configure ESLint based on your project's dependencies.
  •    576⭐     30🍴 Canonical) - Shareable config for     18⭐      5🍴 Canonical style guide).
  •   2590⭐    567🍴 Standard) - Shareable config for JavaScript  28983⭐   2325🍴 Standard Style).
  •    266⭐     43🍴 XO) - Shareable config for   7599⭐    285🍴 XO).
  •   3437⭐    400🍴 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!
  •      6⭐      0🍴 Cecilia) - ESLint configuration for awesome projects.
  •      1⭐      0🍴 clean-typescript) - Enforce classic JavaScript featuress in TypeScript codebase by banning excessive keywords.
  •     28⭐      5🍴 ES) - Shareable config for very strict code.
  •    402⭐     13🍴 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.
  •     97⭐      5🍴 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.
  •   5334⭐    252🍴 eslint-config-prettier) - Prettier config for ESlint maintained by Prettier team.
  •  28983⭐   2325🍴 Standard) - JavaScript Standard Style.
  •      5⭐      0🍴 Superlint) - JavaScript Supermind Style.
  •   7599⭐    285🍴 XO) - JavaScript happiness style linter ❤️.
  •     84⭐      5🍴 Healthier) - Code style agnostic version of Standard, perfect companion to Prettier.

Plugins

Code Quality

  •    130⭐      4🍴 depend) - Helps detect dependency tree bloat and redundant polyfills.
  •    285⭐     51🍴 GitHub) - Misc. rules from GitHub.
  •   1167⭐     73🍴 SonarJS) - Rules detecting bugs and suspicious patterns.
  •   3985⭐    360🍴 Unicorn) - Various awesome ESLint rules.
  •     25⭐     10🍴 @mysticatea/eslint-plugin) - Misc. rules.
  •      2⭐      0🍴 @brettz9/eslint-plugin) - Misc. rules. of @mysticatea without the personal config.

Compatibility

  •   3045⭐    102🍴 Compat) - Lint browser compatibility of APIs used (caniuse as an ESLint plugin).
  •     64⭐     13🍴 ecmascript-compat) - Disable ECMAScript language features not supported by your browserslist targets.
  •    109⭐     10🍴 es-x) - Disable specific ECMAScript language versions or individual features. Properly maintained fork of no longer maintained eslint-plugin-es.
  •     54⭐     20🍴 es5) - ESLint plugin for ES5 users (forbid ES2015+ usage).
  •     14⭐      3🍴 ie11) - Detect unsupported ES6 features in IE11.

CSS in JS

  •    153⭐     34🍴 CSS-modules) - Lint undefined or unused rules for css modules.
  •  17322⭐   1097🍴 Emotion) - ESLint rules for emotion.
  • Styled Components

Deprecation

  •     81⭐     11🍴 deprecate) - Mark functions or modules as deprecated and get lint messages when they are used.
  •    309⭐     35🍴 deprecation) - Identifies use of jsdoc @deprecated functions.
  •     57⭐      3🍴 disable) - Disable specified plugins using file path patterns and inline comments.

Embedded

  •    427⭐     51🍴 HTML) - Linting for JavaScript inside of HTML <script> tags.
  •    368⭐     59🍴 Markdown) - Linting for JavaScript inside of Markdown.

Frameworks

  •   1593⭐    217🍴 Angular) - Linting rules for Angular (v2+).
  •    618⭐    131🍴 AngularJS) - Linting rules to adhere to the  23903⭐   4159🍴 John Papa's AngularJS Styleguide).
  •    288⭐     21🍴 Astro) - Plugin for 🌎 Astro components.
  •     95⭐     11🍴 Backbone) - Linting rules for Backbone.
  •     57⭐     12🍴 Custom Elements) - Rules by GitHub for Custom Elements.
  •    257⭐    199🍴 Ember) - Linting rules for Ember.
  •     21⭐     10🍴 Hapi) - Linting rules for hapi.
  •  44143⭐   5160🍴 Meteor) - Meteor specific linting rules for ESLint.
  • React
    •     21⭐      3🍴 JSX a11y) - Accessibility rules on JSX elements.
    •   8867⭐   2755🍴 React) - Linting rules for React and JSX.
    • 225119⭐  45899🍴 React Hooks) - Linting rules for React Hooks.
    •    718⭐    128🍴 React Native) - React Native specific linting rules.
    •     83⭐     17🍴 React-Redux) - React-Redux specific linting rules.
  •    207⭐     24🍴 Solid) - Linting rules for Solid and JSX.
  •    279⭐     30🍴 Svelte) - Linting rules for Svelte v3 Components.
  • Vue
    •   4406⭐    659🍴 VueJS) - Plugin for VueJS.
    •     96⭐      9🍴 VueJS Scoped CSS) - Plugin for Scoped CSS in VueJS.

Languages and Environments

  • 🌎 AssemblyScript - Rules for enforcing restrictions on TypeScript toward AssemblyScript compliance.
  •  43053⭐   5601🍴 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.
  •    189⭐     26🍴 eslint-plugin-eslint-plugin) - An ESLint plugin for linting ESLint plugins.
  • Flow
    •   1078⭐    153🍴 Flow) - Flow type linting rules.
    •    402⭐     32🍴 Flow Errors) - Run Flow as an ESLint plugin.
  •    147⭐     28🍴 HTML) - ESLint plugin for HTML.
  • JSON
    •    196⭐     28🍴 JSON) - Lint your JSON files.
    •     41⭐      3🍴 JSON, package.json) - Lint, format, and auto-fix your JSON files. Sort your package.json.
    •    180⭐     17🍴 JSON with Comments) - ESLint plugin for JSON, JSONC and JSON5.
    •     67⭐      5🍴 JSON Schema) - Validates data defined in JavaScript, JSON, YAML and TOML using JSON Schema Validator.
  •    258⭐     29🍴 MDX) - ESLint Parser/Plugin for MDX.
  •    195⭐     37🍴 N) - Additional ESLint's rules for Node.js. Properly maintained fork of no longer maintained eslint-plugin-node.
  •     91⭐     23🍴 SQL) - SQL linting rules for ESLint.
  •     25⭐      2🍴 TOML) - ESLint plugin for TOML.
  •  14917⭐   2677🍴 TypeScript) - Linting rules for TypeScript.
  •    108⭐     12🍴 YAML) - ESLint plugin for YAML.

Libraries

  • GraphQL
  •     17⭐      3🍴 TypeGraphQL) - Linting rules for TypeGraphQL, targeted at finding common mistakes.
  •     31⭐      8🍴 jQuery) - Linting rules for jQuery, including versioned configs for deprecated features.
  •   1071⭐    155🍴 JSDoc) - Linting rules for JSDoc comments (including the JavaScript within @example).
  • Lodash
    •    273⭐     65🍴 Lodash) - Lodash specific linting rules.
    •    150⭐     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)
  •     17⭐      3🍴 Mongodb) - Mongodb native Node.js driver linting rules.
  •    118⭐     11🍴 Ramda) - Ramda specific linting rules.
  •     29⭐     16🍴 RequireJS) - Linting rules for RequireJS.
  •   1372⭐     64🍴 Tailwind CSS) - Linting rules for Tailwind CSS classnames.

Misc

  •    165⭐     13🍴 Diff) - Run ESLint on your changed lines only. Also supports CI!
  •      8⭐      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!
  •     15⭐      3🍴 Only-Error) - Convert all rules to errors.
  •    155⭐     15🍴 Only-Warn) - Convert all rules to warnings.
  •    682⭐     39🍴 PutOut) - an ESLint plugin integrates    682⭐     39🍴 putout) linter into ESLint.
  •    175⭐      5🍴 TypeLint) - Introduces types, based on existing schemas (Swagger, Redux) and linting access to object properties, preventing undefined errors.
  •     31⭐      1🍴 Woke) - Helps catch insensitive words, promoting an inclusive codebase.

Practices and Specific ES Features

  •     93⭐      7🍴 array-func) - Avoid redundancy when using es2015 array methods and functions.
  •    305⭐     14🍴 arrow functions) - ESLint rules to ensure proper arrow function definitions.
  •    476⭐      8🍴 boundaries) - Ensures that your architecture boundaries are respected by the elements in your project checking file structure and dependencies.
  •     44⭐      6🍴 @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.
  •    284⭐     16🍴 eslint-plugin-hexagonal-architecture) - A plugin that helps you to enforce hexagonal architecture best practices.
  •     32⭐      3🍴 eslint-plugin-write-good-comments) - Enforce good writing style in comments.
  •     15⭐      0🍴 eslint-plugin-exception-handling) - Lints unhandled functions that might throw errors.
  •    968⭐     36🍴 fp) - ESLint rules for functional programming.
  •    756⭐     29🍴 functional) - ESLint rules to disable mutation and promote fp in JavaScript and TypeScript.
  •    912⭐     17🍴 Immutable) - Disable all mutation in JavaScript.
  •   5383⭐   1542🍴 import) - Linting of ES2015+ import/export syntax, and prevent issues with misspelling of file paths and import names. Still does not work with ESlint 9 and does not support flat configs.
  •    248⭐     12🍴 import-x) - Linting of ES2015+ import/export syntax, and prevent issues with misspelling of file paths and import names. Properly maintained lightweight fork of eslint-plugin-import with the proper support of latest ESlint.
  •     25⭐      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.
  •     11⭐      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.
  •    125⭐      5🍴 no-loops) - It's 2019 and you still use loops?
  •      4⭐      0🍴 no-restricted-syntax) - Show queried syntax's content in messages.
  •     56⭐      4🍴 no-use-extend-native) - Prevent using extended native objects.
  •    911⭐     89🍴 Promise) - Best practices when working with promises.
  •     29⭐      1🍴 pure) - Enforce pure functions (without side effects).
  • 🌎 ReDoS - ESLint plugin for finding possible ReDoS vulnerabilities.
  •      4⭐      0🍴 ReDoSDetector) - ESLint plugin for finding possible ReDoS vulnerabilities.
  •    676⭐     10🍴 RegExp) - ESLint plugin for finding regexp mistakes and style guide violations.
  •     95⭐     22🍴 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)
  •     74⭐      7🍴 Optimize Regex) - Optimize regex literals.
  • Perf-Standard     22⭐      3🍴 plugin) and      3⭐      0🍴 Config)

Security

  •    127⭐      4🍴 no-secrets) - An eslint plugin that detects potential secrets/credentials.
  •    223⭐     34🍴 no-unsanitized) - Checks for innerHTML, outerHTML, etc.
  •      8⭐      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.
  •   2162⭐    108🍴 Security) - ESLint rules for Node Security.
  •     67⭐     16🍴 xss) - Tries to detect XSS issues in codebase before they end up in production.

Style

Testing Tools

Parsers

  •  43053⭐   5601🍴 babel-eslint-parser) - Allows you to lint ALL valid Babel code with the fantastic ESLint.
  •  14917⭐   2677🍴 TypeScript) - A TypeScript parser that produces output compatible with ESLint.
  •     43⭐      8🍴 BrightScript) - BrightScript plugin for Roku development. Includes Parser and Rules.
  •    779⭐    102🍴 GraphQL) - Parser for the GraphQL AST. Includes parser, plugin, processor (for non-graphql files) and rules.

Formatters

  •     33⭐      4🍴 html) - A enhanced ESLint formatter.
  •      6⭐      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.
  •    100⭐      3🍴 github) - See ESLint errors and warnings directly in pull requests.
  • 🌎 gitlab - Output ESLint results in the GitLab code quality results.
  •    121⭐      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

  • 102225⭐  26686🍴 confusing-browser-globals) - A curated list of browser globals that commonly cause confusion and are not recommended to use without an explicit window. qualifier.
  •    364⭐    110🍴 ES and browser globals) (originally from ESLint)
  •      2⭐      0🍴 chai globals)
  •     15⭐      7🍴 TestCafe globals) - fixture & test globals for TestCafe.

Tools

  •    348⭐     27🍴 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.
  •    201⭐     33🍴 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.
  •    339⭐      8🍴 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.
  •    760⭐     29🍴 eslint-nibble) - Ease into ESLint, by fixing one rule at a time.
  •      0⭐      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.
  •    193⭐     29🍴 eslint-watch) - Run ESLint with watch mode.
  •     15⭐     18🍴 codacy-eslint) - Docker used at 🌎 Codacy to run ESLint.
  •    658⭐     54🍴 esprint) - Run ESLint across multiple threads.
  •    228⭐     50🍴 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⭐      1🍴 eslint-dashboard) - Interactive ESLint workflow that lives in your terminal.
  •    118⭐     10🍴 eslint-remote-tester) - CLI tool for testing given ESlint rules against multiple repositories at once.

Developing for ESLint

  •     91⭐      5🍴 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

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

Source

  4220⭐    229🍴 dustinspecker/awesome-eslint)