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

  • 148012⭐  26782🍴 Airbnb) - Shareable config for 148012⭐  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 for    260⭐     37🍴 Shopify's style guide).
  •     33⭐     23🍴 Wikimedia) - Shareable config for 🌎 Wikimedia's style guide, used by 🌎 MediaWiki.

Other Prominent Configs (100 stars or so)

  •    404⭐     13🍴 Auto) - Automatically configure ESLint based on your project's dependencies.
  •    621⭐     30🍴 Canonical) - Shareable config for     19⭐      5🍴 Canonical style guide).
  •   2648⭐    557🍴 Standard) - Shareable config for JavaScript  29409⭐   2319🍴 Standard Style).
  •    282⭐     40🍴 XO) - Shareable config for   7942⭐    301🍴 XO).
  •   5967⭐    568🍴 Antfu Eslint Config) - Anthony's ESLint config preset.

Other Configs

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

Preconfigured Configs with ESLint Set up

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

Plugins

Code Quality

  •    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 @mysticatea without 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.

Compatibility

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

CSS in JS

  •    154⭐     35🍴 CSS-modules) - Lint undefined or unused rules for css modules.
  •  17949⭐   1137🍴 Emotion) - ESLint rules for emotion.
  • Styled Components
  •     31⭐      1🍴 vanilla-extract) - An ESLint plugin for enforcing CSS property ordering in  10258⭐    332🍴 vanilla-extract CSS) styles.

Deprecation

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

Embedded

  •    449⭐     55🍴 HTML) - Linting for JavaScript inside of HTML <script> tags.
  •    528⭐     84🍴 Markdown) - Linting for JavaScript inside of Markdown.

Frameworks

  •   1768⭐    252🍴 Angular) - Linting rules for Angular (v2+).
  •    620⭐    128🍴 AngularJS) - Linting rules to adhere to the  23734⭐   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.

Languages and Environments

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

Libraries

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

Misc

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

Practices and Specific ES Features

  •     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 maintained eslint-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 of eslint-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 using new.
  •      3⭐      0🍴 no-argument-spread) - Lints against expressions like Math.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 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.
  •    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 ESLint sort-keys rule.
  •     16⭐      1🍴 this) - Write pure functions, don't allow this.
  •     20⭐      3🍴 toplevel) - An eslint plugin for disallow side effect at module toplevel.

Performance

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

Security

  •    161⭐      6🍴 no-secrets) - An eslint plugin that detects potential secrets/credentials.
  •    239⭐     39🍴 no-unsanitized) - Checks for innerHTML, 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.

Style

Testing Tools

Parsers

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

Formatters

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

Globals

  • 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 & test globals for TestCafe.

Tools

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

Developing for ESLint

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

Tutorials

Installation and Setup

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

Source

  4682⭐    244🍴 dustinspecker/awesome-eslint)

About

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

Topics

Resources

Code of conduct

Contributing

Stars

Watchers

Forks

Sponsor this project

 

Contributors 122