Files
awesome-awesomeness/html/eslint.md2.html
2025-07-18 23:13:11 +02:00

837 lines
35 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<h1 id="awesome-eslint-awesome">Awesome ESLint <a
href="https://awesome.re"><img src="https://awesome.re/badge.svg"
alt="Awesome" /></a></h1>
<p><a
href="http://eslint.org"><img src="https://eslint.org/icon.svg" width="160" align="right" alt="eslint"></a></p>
<blockquote>
<p>A list of awesome ESLint configs, plugins, etc.</p>
</blockquote>
<p>If you want to contribute, please read the <a
href="contributing.md">contribution guidelines</a>.</p>
<h2 id="contents">Contents</h2>
<ul>
<li><a href="#configs">Configs</a>
<ul>
<li><a href="#configs-by-well-known-companiesorganizations">Configs by
Well-Known Companies/Organizations</a></li>
<li><a href="#other-prominent-configs-100-stars-or-so">Other Prominent
Configs (100 stars or so)</a></li>
<li><a href="#other-configs">Other Configs</a></li>
</ul></li>
<li><a href="#preconfigured-configs-with-eslint-set-up">Preconfigured
Configs with ESLint Set up</a></li>
<li><a href="#plugins">Plugins</a>
<ul>
<li><a href="#code-quality">Code Quality</a></li>
<li><a href="#compatibility">Compatibility</a></li>
<li><a href="#css-in-js">CSS in JS</a></li>
<li><a href="#deprecation">Deprecation</a></li>
<li><a href="#embedded">Embedded</a></li>
<li><a href="#frameworks">Frameworks</a></li>
<li><a href="#languages-and-environments">Languages and
Environments</a></li>
<li><a href="#libraries">Libraries</a></li>
<li><a href="#misc">Misc</a></li>
<li><a href="#practices-and-specific-es-features">Practices and Specific
ES Features</a></li>
<li><a href="#performance">Performance</a></li>
<li><a href="#security">Security</a></li>
<li><a href="#style">Style</a></li>
<li><a href="#testing-tools">Testing Tools</a></li>
</ul></li>
<li><a href="#parsers">Parsers</a></li>
<li><a href="#formatters">Formatters</a></li>
<li><a href="#globals">Globals</a></li>
<li><a href="#tools">Tools</a></li>
<li><a href="#developing-for-eslint">Developing for ESLint</a></li>
<li><a href="#tutorials">Tutorials</a></li>
<li><a href="#installation-and-setup">Installation and Setup</a></li>
</ul>
<h2 id="configs">Configs</h2>
<h3 id="configs-by-well-known-companiesorganizations">Configs by
Well-Known Companies/Organizations</h3>
<ul>
<li><a
href="https://github.com/airbnb/javascript/tree/master/packages/eslint-config-airbnb">Airbnb</a>
- Shareable config for <a
href="https://github.com/airbnb/javascript">Airbnbs style
guide</a>.</li>
<li><a
href="https://github.com/davidjbradshaw/eslint-config-airbnb-babel">Airbnb-babel</a>
- Airbnbs ESLint config with Babel Support.</li>
<li><a href="https://github.com/AlloyTeam/eslint-config-alloy">Alloy</a>
- Progressive ESLint config for your React/Vue/TypeScript projects.</li>
<li><a
href="https://github.com/eslint/eslint/tree/master/packages/eslint-config-eslint">ESLint</a>
- Contains the ESLint configuration used for projects maintained by the
ESLint team.</li>
<li><a
href="https://www.npmjs.com/package/eslint-config-fbjs">Facebook</a> -
Sharable config for Facebooks style guide.</li>
<li><a
href="https://github.com/feedzai/eslint-config-feedzai">Feedzai</a> -
Feedzais shareable config for JavaScript/React projects.</li>
<li><a
href="https://github.com/Shopify/web-foundation/blob/main/packages/eslint-plugin/README.md">Shopify</a>
- Shareable config for <a
href="https://github.com/Shopify/javascript">Shopifys style
guide</a>.</li>
<li><a
href="https://github.com/wikimedia/eslint-config-wikimedia">Wikimedia</a>
- Shareable config for <a
href="https://www.mediawiki.org/wiki/Manual:Coding_conventions/JavaScript">Wikimedias
style guide</a>, used by <a
href="https://www.mediawiki.org/">MediaWiki</a>.</li>
</ul>
<h3 id="other-prominent-configs-100-stars-or-so">Other Prominent Configs
(100 stars or so)</h3>
<ul>
<li><a
href="https://github.com/davidjbradshaw/eslint-config-auto">Auto</a> -
Automatically configure ESLint based on your projects
dependencies.</li>
<li><a
href="https://github.com/gajus/eslint-config-canonical">Canonical</a> -
Shareable config for <a
href="https://github.com/gajus/canonical">Canonical style guide</a>.
<!-- lint disable double-link --></li>
<li><a
href="https://github.com/feross/eslint-config-standard">Standard</a> -
Shareable config for JavaScript <a
href="https://github.com/feross/standard">Standard Style</a>.</li>
<li><a href="https://github.com/xojs/eslint-config-xo">XO</a> -
Shareable config for <a href="https://github.com/xojs/xo">XO</a>.</li>
<li><a href="https://github.com/antfu/eslint-config">Antfu Eslint
Config</a> - Anthonys ESLint config preset.</li>
</ul>
<h3 id="other-configs">Other Configs</h3>
<ul>
<li><a
href="https://github.com/davidjbradshaw/eslint-config-adjunct">Adjunct</a>
- A reasonable collection of plugins to use alongside your main ESLint
configuration.</li>
<li><a
href="https://github.com/brettz9/eslint-config-ash-nazg">Ash-Nazg</a> -
One config to rule them all!</li>
<li><a
href="https://github.com/SandroMiguel/eslint-config-cecilia">Cecilia</a>
- ESLint configuration for awesome projects.</li>
<li><a
href="https://github.com/cunarist/eslint-config-clean-typescript">clean-typescript</a>
- Enforce classic JavaScript featuress in TypeScript codebase by banning
excessive keywords.</li>
<li><a
href="https://github.com/EvgenyOrekhov/eslint-config-hardcore">Hardcore</a>
- The most strict (but practical) ESLint config out there.</li>
<li><a
href="https://github.com/RyanZim/eslint-config-problems">Problems</a> -
Shareable config that only catches actual problems, and doesnt enforce
stylistic preferences.</li>
<li><a
href="https://github.com/supermind/eslint-config-supermind">Supermind</a>
- Shareable config for Supermind style.</li>
<li><a href="https://github.com/AndreaPontrandolfo/sheriff">Sheriff</a>
- Comprehensive and highly opinionated Eslint configuration. Typescript
oriented.</li>
</ul>
<h2 id="preconfigured-configs-with-eslint-set-up">Preconfigured Configs
with ESLint Set up</h2>
<ul>
<li><a href="https://github.com/geek/node-style">Node.js Standard
Style</a> - Node.js core config.</li>
<li><a
href="https://github.com/prettier/eslint-config-prettier">eslint-config-prettier</a>
- Prettier config for ESlint maintained by Prettier team.</li>
<li><a href="https://github.com/feross/standard">Standard</a> -
JavaScript Standard Style.</li>
<li><a href="https://github.com/supermind/superlint">Superlint</a> -
JavaScript Supermind Style.</li>
<li><a href="https://github.com/sindresorhus/xo">XO</a> - JavaScript
happiness style linter ❤️.</li>
</ul>
<h2 id="plugins">Plugins</h2>
<h3 id="code-quality">Code Quality</h3>
<ul>
<li><a
href="https://github.com/es-tooling/eslint-plugin-depend">depend</a> -
Helps detect dependency tree bloat and redundant polyfills.</li>
<li><a href="https://github.com/github/eslint-plugin-github">GitHub</a>
- Misc. rules from GitHub.</li>
<li><a
href="https://github.com/SonarSource/SonarJS/blob/master/packages/jsts/src/rules/README.md">SonarJS</a>
- Rules detecting bugs and suspicious patterns.</li>
<li><a
href="https://github.com/sindresorhus/eslint-plugin-unicorn">Unicorn</a>
- Various awesome ESLint rules.</li>
<li><a href="https://github.com/mysticatea/eslint-plugin"><span
class="citation"
data-cites="mysticatea/eslint-plugin">@mysticatea/eslint-plugin</span></a>
- Misc. rules.</li>
<li><a href="https://github.com/brettz9/eslint-plugin"><span
class="citation"
data-cites="brettz9/eslint-plugin">@brettz9/eslint-plugin</span></a> -
Misc. rules. of <code>@mysticatea</code> without the personal
config.</li>
<li><a href="https://github.com/azat-io/eslint-plugin-de-morgan">De
Morgan</a> - Transforms logical expressions in code to make them easier
to understand.</li>
<li><a
href="https://github.com/aryelu/eslint-plugin-code-complete">eslint-plugin-code-complete</a>
- A custom ESLint plugin that enforces principles of clean, maintainable
software design — inspired by Code Complete.</li>
</ul>
<h3 id="compatibility">Compatibility</h3>
<ul>
<li><a
href="https://github.com/amilajack/eslint-plugin-compat">Compat</a> -
Lint browser compatibility of APIs used (<a
href="http://caniuse.com/#search=fetch">caniuse</a> as an ESLint
plugin).</li>
<li><a
href="https://github.com/robatwilliams/es-compat">ecmascript-compat</a>
- Disable ECMAScript language features not supported by your
browserslist targets.</li>
<li><a
href="https://github.com/eslint-community/eslint-plugin-es-x">es-x</a> -
Disable specific ECMAScript language versions or individual features.
Properly maintained fork of no longer maintained
<code>eslint-plugin-es</code>.</li>
<li><a href="https://github.com/nkt/eslint-plugin-es5">es5</a> - ESLint
plugin for ES5 users (forbid ES2015+ usage).</li>
<li><a href="https://github.com/Volox/eslint-plugin-ie11">ie11</a> -
Detect unsupported ES6 features in IE11.</li>
</ul>
<h3 id="css-in-js">CSS in JS</h3>
<ul>
<li><a
href="https://github.com/atfzl/eslint-plugin-css-modules">CSS-modules</a>
- Lint undefined or unused rules for css modules.</li>
<li><a
href="https://github.com/emotion-js/emotion/tree/master/packages/eslint-plugin">Emotion</a>
- ESLint rules for emotion.</li>
<li>Styled Components
<ul>
<li><a
href="https://github.com/tinloof/eslint-plugin-better-styled-components">Better
Styled Components</a> - Auto fixable ESlints rules for styled
components.</li>
<li><a
href="https://github.com/brendanmorrell/eslint-plugin-styled-components-a11y">styled-components-a11y</a>
- A11y for Styled Components.</li>
</ul></li>
<li><a
href="https://github.com/antebudimir/eslint-plugin-vanilla-extract">vanilla-extract</a>
- An ESLint plugin for enforcing CSS property ordering in <a
href="https://github.com/vanilla-extract-css/vanilla-extract">vanilla-extract
CSS</a> styles.</li>
</ul>
<h3 id="deprecation">Deprecation</h3>
<ul>
<li><a
href="https://github.com/AlexMost/eslint-plugin-deprecate">deprecate</a>
- Mark functions or modules as deprecated and get lint messages when
they are used.</li>
<li><a
href="https://github.com/mradionov/eslint-plugin-disable">disable</a> -
Disable specified plugins using file path patterns and inline
comments.</li>
</ul>
<h3 id="embedded">Embedded</h3>
<ul>
<li><a
href="https://github.com/BenoitZugmeyer/eslint-plugin-html">HTML</a> -
Linting for JavaScript inside of HTML <code>&lt;script&gt;</code>
tags.</li>
<li><a
href="https://github.com/eslint/eslint-plugin-markdown">Markdown</a> -
Linting for JavaScript inside of Markdown.</li>
</ul>
<h3 id="frameworks">Frameworks</h3>
<ul>
<li><a
href="https://github.com/angular-eslint/angular-eslint">Angular</a> -
Linting rules for Angular (v2+).</li>
<li><a
href="https://github.com/Gillespie59/eslint-plugin-angular">AngularJS</a>
- Linting rules to adhere to the <a
href="https://github.com/johnpapa/angular-styleguide">John Papas
AngularJS Styleguide</a>.</li>
<li><a href="https://github.com/ota-meshi/eslint-plugin-astro">Astro</a>
- Plugin for <a
href="https://docs.astro.build/en/core-concepts/astro-components/">Astro
components</a>.</li>
<li><a
href="https://github.com/ilyavolodin/eslint-plugin-backbone">Backbone</a>
- Linting rules for Backbone.</li>
<li><a href="https://github.com/ember-cli/eslint-plugin-ember">Ember</a>
- Linting rules for Ember.</li>
<li><a
href="https://github.com/continuationlabs/eslint-plugin-hapi">Hapi</a> -
Linting rules for hapi.</li>
<li><a
href="https://github.com/meteor/meteor/tree/devel/npm-packages/eslint-plugin-meteor">Meteor</a>
- Meteor specific linting rules for ESLint.</li>
<li>React
<ul>
<li><a href="https://github.com/jsx-eslint/eslint-plugin-jsx-a11y">JSX
a11y</a> - Accessibility rules on JSX elements.</li>
<li><a href="https://github.com/yannickcr/eslint-plugin-react">React</a>
- Linting rules for React and JSX.</li>
<li><a
href="https://github.com/facebook/react/tree/master/packages/eslint-plugin-react-hooks">React
Hooks</a> - Linting rules for React Hooks.</li>
<li><a
href="https://github.com/Intellicode/eslint-plugin-react-native">React
Native</a> - React Native specific linting rules.</li>
<li><a
href="https://github.com/DianaSuvorova/eslint-plugin-react-redux">React-Redux</a>
- React-Redux specific linting rules.</li>
<li><a
href="https://github.com/ArnaudBarre/eslint-plugin-react-refresh">React
Refresh</a> - Improve HMR experience when using Vite.</li>
</ul></li>
<li><a
href="https://github.com/joshwilsonvu/eslint-plugin-solid">Solid</a> -
Linting rules for Solid and JSX.</li>
<li><a
href="https://github.com/sveltejs/eslint-plugin-svelte">Svelte</a> -
Linting rules for Svelte v3 Components.</li>
<li>Vue
<ul>
<li><a href="https://github.com/vuejs/eslint-plugin-vue">VueJS</a> -
Plugin for VueJS.</li>
<li><a
href="https://github.com/future-architect/eslint-plugin-vue-scoped-css">VueJS
Scoped CSS</a> - Plugin for Scoped CSS in VueJS.</li>
</ul></li>
</ul>
<h3 id="languages-and-environments">Languages and Environments</h3>
<ul>
<li><a
href="https://github.com/babel/babel/tree/main/eslint/babel-eslint-plugin">Babel</a>
- Adds replacements for built-in rules to include Babel features.</li>
<li><a
href="https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin">eslint-plugin-eslint-plugin</a>
- An ESLint plugin for linting ESLint plugins.</li>
<li>Flow
<ul>
<li><a href="https://github.com/gajus/eslint-plugin-flowtype">Flow</a> -
Flow type linting rules.</li>
<li><a
href="https://github.com/amilajack/eslint-plugin-flowtype-errors">Flow
Errors</a> - Run Flow as an ESLint plugin.</li>
</ul></li>
<li><a href="https://github.com/yeonjuan/html-eslint">HTML</a> - ESLint
plugin for HTML.</li>
<li>JSON
<ul>
<li><a href="https://github.com/azeemba/eslint-plugin-json">JSON</a> -
Lint your JSON files.</li>
<li><a href="https://github.com/Bkucera/eslint-plugin-json-format">JSON,
package.json</a> - Lint, format, and auto-fix your JSON files. Sort your
<code>package.json</code>.</li>
<li><a href="https://github.com/ota-meshi/eslint-plugin-jsonc">JSON with
Comments</a> - ESLint plugin for JSON, JSONC and JSON5.</li>
<li><a
href="https://github.com/ota-meshi/eslint-plugin-json-schema-validator">JSON
Schema</a> - Validates data defined in JavaScript, JSON, YAML and TOML
using JSON Schema Validator.</li>
</ul></li>
<li><a
href="https://github.com/mdx-js/eslint-mdx/tree/master/packages/eslint-plugin-mdx">MDX</a>
- ESLint Parser/Plugin for MDX.</li>
<li><a href="https://github.com/eslint-community/eslint-plugin-n">N</a>
- Additional ESLints rules for Node.js. Properly maintained fork of no
longer maintained <code>eslint-plugin-node</code>.</li>
<li><a href="https://github.com/gajus/eslint-plugin-sql">SQL</a> - SQL
linting rules for ESLint.</li>
<li><a href="https://github.com/ota-meshi/eslint-plugin-toml">TOML</a> -
ESLint plugin for TOML.</li>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/tree/master/packages/eslint-plugin">TypeScript</a>
- Linting rules for TypeScript.</li>
<li><a href="https://github.com/ota-meshi/eslint-plugin-yml">YAML</a> -
ESLint plugin for YAML.</li>
</ul>
<h3 id="libraries">Libraries</h3>
<ul>
<li>GraphQL
<ul>
<li><a
href="https://github.com/dotansimha/graphql-eslint">dotansimha/graphql-eslint</a>
- Validates, prettifies and checks your GraphQL operations and GraphQL
schema for best-practices.</li>
<li><a
href="https://github.com/apollostack/eslint-plugin-graphql">apollostack/eslint-plugin-graphql</a>
- Check your GraphQL query strings against a schema.</li>
</ul></li>
<li><a
href="https://github.com/borremosch/eslint-plugin-type-graphql">TypeGraphQL</a>
- Linting rules for TypeGraphQL, targeted at finding common
mistakes.</li>
<li><a
href="https://github.com/wikimedia/eslint-plugin-no-jquery">jQuery</a> -
Linting rules for jQuery, including versioned configs for deprecated
features.</li>
<li><a href="https://github.com/gajus/eslint-plugin-jsdoc">JSDoc</a> -
Linting rules for JSDoc comments (including the JavaScript within
<code>@example</code>).</li>
<li>Lodash
<ul>
<li><a href="https://github.com/wix/eslint-plugin-lodash">Lodash</a> -
Lodash specific linting rules.</li>
<li><a
href="https://github.com/jfmengels/eslint-plugin-lodash-fp">Lodash/fp</a>
- Lodash/fp specific linting rules.</li>
<li><a
href="https://github.com/ota-meshi/eslint-plugin-lodash-template">Lodash
template</a> - Plugin for Lodash template/Underscore template.</li>
<li><a
href="https://github.com/platinumazure/eslint-plugin-microtemplates">Microtemplates</a>
(Used in Lodash and Underscore.js)</li>
</ul></li>
<li><a
href="https://github.com/nfroidure/eslint-plugin-mongodb">Mongodb</a> -
Mongodb native Node.js driver linting rules.</li>
<li><a href="https://github.com/ramda/eslint-plugin-ramda">Ramda</a> -
Ramda specific linting rules.</li>
<li><a
href="https://github.com/cvisco/eslint-plugin-requirejs">RequireJS</a> -
Linting rules for RequireJS.</li>
<li><a
href="https://github.com/francoismassart/eslint-plugin-tailwindcss">Tailwind
CSS</a> - Linting rules for Tailwind CSS classnames.</li>
</ul>
<h3 id="misc">Misc</h3>
<ul>
<li><a href="https://github.com/paleite/eslint-plugin-diff">Diff</a> -
Run ESLint on your changed lines only. Also supports CI!</li>
<li><a href="https://github.com/ilyub/eslint-plugin-misc">Misc</a> -
Miscellaneous rules including rules for creating custom checks and
wrapping (modifying) third-party rules.</li>
<li><a
href="https://github.com/nickdeis/eslint-plugin-notice">Notice</a> - An
eslint rule that checks the top of files and fixes them too!</li>
<li><a
href="https://github.com/davidjbradshaw/eslint-plugin-only-error">Only-Error</a>
- Convert all rules to errors.</li>
<li><a
href="https://github.com/bfanger/eslint-plugin-only-warn">Only-Warn</a>
- Convert all rules to warnings.</li>
<li><a
href="https://github.com/coderaiser/putout/tree/master/packages/eslint-plugin-putout">PutOut</a>
- an ESLint plugin integrates <a
href="https://github.com/coderaiser/putout">putout</a> linter into
ESLint.</li>
<li><a
href="https://github.com/yarax/eslint-plugin-typelint">TypeLint</a> -
Introduces types, based on existing schemas (Swagger, Redux) and linting
access to object properties, preventing <code>undefined</code>
errors.</li>
<li><a href="https://github.com/amwmedia/eslint-plugin-woke">Woke</a> -
Helps catch insensitive words, promoting an inclusive codebase.</li>
</ul>
<h3 id="practices-and-specific-es-features">Practices and Specific ES
Features</h3>
<ul>
<li><a
href="https://github.com/freaktechnik/eslint-plugin-array-func">array-func</a>
- Avoid redundancy when using es2015 array methods and functions.</li>
<li><a
href="https://github.com/getify/eslint-plugin-proper-arrows">arrow
functions</a> - ESLint rules to ensure proper arrow function
definitions.</li>
<li><a
href="https://github.com/javierbrea/eslint-plugin-boundaries">boundaries</a>
- Ensures that your architecture boundaries are respected by the
elements in your project checking file structure and dependencies.</li>
<li><a
href="https://github.com/eslint-community/eslint-plugin-eslint-comments"><span
class="citation"
data-cites="eslint-community/eslint-plugin-eslint-comments">@eslint-community/eslint-plugin-eslint-comments</span></a>
- Best practices about ESLint directive comments
(<code>/*eslint-disable*/</code>, etc.). Properly maintained fork of no
longer maintained <code>eslint-plugin-eslint-comments</code>.</li>
<li><a
href="https://github.com/Amnish04/eslint-plugin-error-cause">eslint-plugin-error-cause</a>
- A plugin to preserve original error context when re-throwing
exceptions.</li>
<li><a
href="https://github.com/CodelyTV/eslint-plugin-hexagonal-architecture">eslint-plugin-hexagonal-architecture</a>
- A plugin that helps you to enforce hexagonal architecture best
practices.</li>
<li><a
href="https://github.com/kantord/eslint-plugin-write-good-comments">eslint-plugin-write-good-comments</a>
- Enforce good writing style in comments.</li>
<li><a
href="https://github.com/Akronae/eslint-plugin-exception-handling">eslint-plugin-exception-handling</a>
- Lints unhandled functions that might throw errors.</li>
<li><a href="https://github.com/jfmengels/eslint-plugin-fp">fp</a> -
ESLint rules for functional programming.</li>
<li><a
href="https://github.com/jonaskello/eslint-plugin-functional">functional</a>
- ESLint rules to disable mutation and promote fp in JavaScript and
TypeScript.</li>
<li><a
href="https://github.com/jhusain/eslint-plugin-immutable">Immutable</a>
- Disable all mutation in JavaScript.</li>
<li><a
href="https://github.com/benmosher/eslint-plugin-import">import</a> -
Linting of ES2015+ import/export syntax, and prevent issues with
misspelling of file paths and import names.</li>
<li><a
href="https://github.com/un-ts/eslint-plugin-import-x">import-x</a> -
Linting of ES2015+ import/export syntax, and prevent issues with
misspelling of file paths and import names. Lightweight fork of
<code>eslint-plugin-import</code>, but which breaks backwards
compatibility.</li>
<li><a href="https://github.com/ota-meshi/eslint-plugin-math">Math</a> -
ESLint plugin related to Math object and Number.</li>
<li><a
href="https://github.com/Trott/eslint-plugin-new-with-error">new-with-error</a>
- Require errors to be thrown using <code>new</code>.
<!-- lint ignore awesome-spell-check --></li>
<li><a
href="https://github.com/causalhq/eslint-plugin-no-argument-spread">no-argument-spread</a>
- Lints against expressions like <code>Math.max(...args)</code> that can
lead to a stack overflow for large arrays.</li>
<li><a
href="https://github.com/wisniewski94/eslint-plugin-no-comments">no-comments</a>
- Prevents leaking comments into production if bundler is not used and
stops developers from commenting out old lines of code.</li>
<li><a
href="https://github.com/markalfred/eslint-plugin-no-constructor-bind">no-constructor-bind</a>
- Encourages use of class properties by reporting use of
<code>this</code> with <code>bind</code> or setting state in
constructors.</li>
<li><a
href="https://github.com/johnstonbl01/eslint-no-inferred-method-name">no-inferred-method-name</a>
- Custom rule for ESLint that checks for inferred method names within
object literals.</li>
<li><a
href="https://github.com/buildo/eslint-plugin-no-loops">no-loops</a> -
Its 2019 and you still use loops?</li>
<li><a
href="https://github.com/brettz9/eslint-plugin-query">no-restricted-syntax</a>
- Show queried syntaxs content in messages.</li>
<li><a
href="https://github.com/dustinspecker/eslint-plugin-no-use-extend-native">no-use-extend-native</a>
- Prevent using extended native objects.</li>
<li><a
href="https://github.com/xjamundx/eslint-plugin-promise">Promise</a> -
Best practices when working with promises.</li>
<li><a
href="https://github.com/purely-functional/eslint-plugin-pure">pure</a>
- Enforce pure functions (without side effects).</li>
<li><a
href="https://makenowjust-labs.github.io/recheck/docs/usage/as-eslint-plugin/">ReDoS</a>
- ESLint plugin for finding possible ReDoS vulnerabilities.</li>
<li><a
href="https://github.com/tjenkinson/eslint-plugin-redos-detector">ReDoSDetector</a>
- ESLint plugin for finding possible ReDoS vulnerabilities.</li>
<li><a
href="https://github.com/ota-meshi/eslint-plugin-regexp">RegExp</a> -
ESLint plugin for finding regexp mistakes and style guide
violations.</li>
<li><a
href="https://github.com/leo-buneev/eslint-plugin-sort-keys-fix">sort-keys-fix</a>
- Adds fixer for ESLint <code>sort-keys</code> rule.</li>
<li><a href="https://github.com/matijs/eslint-plugin-this">this</a> -
Write pure functions, dont allow <code>this</code>.</li>
<li><a
href="https://github.com/HKalbasi/eslint-plugin-toplevel">toplevel</a> -
An eslint plugin for disallow side effect at module toplevel.</li>
</ul>
<h3 id="performance">Performance</h3>
<ul>
<li><a
href="https://github.com/amilajack/eslint-plugin-dom">DOM</a></li>
<li><a
href="https://github.com/BrainMaestro/eslint-plugin-optimize-regex">Optimize
Regex</a> - Optimize regex literals.</li>
<li>Perf-Standard <a
href="https://github.com/Raynos/eslint-plugin-perf-standard">plugin</a>
and <a
href="https://github.com/Raynos/eslint-config-perf-standard">Config</a></li>
</ul>
<h3 id="security">Security</h3>
<ul>
<li><a
href="https://github.com/nickdeis/eslint-plugin-no-secrets">no-secrets</a>
- An eslint plugin that detects potential secrets/credentials.</li>
<li><a
href="https://github.com/mozilla/eslint-plugin-no-unsanitized">no-unsanitized</a>
- Checks for <code>innerHTML</code>, <code>outerHTML</code>, etc.</li>
<li><a href="https://github.com/shiva-hack/eslint-plugin-pii">pii</a> -
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.</li>
<li><a
href="https://github.com/nodesecurity/eslint-plugin-security">Security</a>
- ESLint rules for Node Security.</li>
<li><a href="https://github.com/Rantanen/eslint-plugin-xss">xss</a> -
Tries to detect XSS issues in codebase before they end up in
production.</li>
</ul>
<h3 id="style">Style</h3>
<ul>
<li><a href="https://eslint.style/">ESLint Stylistic</a> - <a
href="https://eslint.org/blog/2023/10/deprecating-formatting-rules/">Formatting
and stylistic ESLint core rules moved to this project and are maintained
by the community.</a></li>
<li><a
href="https://www.npmjs.com/package/eslint-plugin-const-case">const
case</a> - Enforce capitalization of constant primitive literals.</li>
<li><a
href="https://github.com/platinumazure/eslint-plugin-editorconfig">editorconfig</a>
- Derive rules from <a
href="https://editorconfig.org/"><code>.editorconfig</code></a>.</li>
<li><a
href="https://github.com/selaux/eslint-plugin-filenames">filenames</a> -
Ensure consistent filenames for your JavaScript files. No longer
maintained and does not work with ESlint 9 at all.</li>
<li><a
href="https://github.com/lydell/eslint-plugin-simple-import-sort">Simple
import sort</a> - Easy autofixable import sorting.</li>
<li><a
href="https://github.com/azat-io/eslint-plugin-perfectionist">perfectionist
sorting</a> - Sort objects, imports, TypeScript types, enums, JSX props,
etc.</li>
<li><a
href="https://github.com/sngn/eslint-plugin-split-and-sort-imports">split-and-sort-imports</a>
- Sorts imports and splits multiple imports into single line
imports.</li>
<li><a
href="https://github.com/lukeapage/eslint-plugin-switch-case">Switch
case</a> - Switch-case-specific linting rules for ESLint.</li>
<li><a href="https://github.com/mu-io/eslint-plugin-padding">padding</a>
- Allows/disallows padding between statements.</li>
<li><a href="https://github.com/vitonsky/eslint-plugin-paths">paths</a>
- Use paths from tsconfig/jsconfig and auto fix relative paths to
aliases.</li>
<li><a
href="https://www.npmjs.com/package/@gitbutler/no-relative-imports"><span
class="citation"
data-cites="gitbutler/no-relative-imports">@gitbutler/no-relative-imports</span></a>
- Use paths from tsconfig and auto fix relative paths to aliases.
Observes tsconfig inheritance.</li>
</ul>
<h3 id="testing-tools">Testing Tools</h3>
<ul>
<li><a href="https://github.com/avajs/eslint-plugin-ava">AVA</a> -
Linting rules for AVA.</li>
<li>Chai
<ul>
<li><a
href="https://github.com/turbo87/eslint-plugin-chai-expect">expect
practices</a></li>
<li><a
href="https://github.com/ihordiachenko/eslint-plugin-chai-friendly">with
unused expressions</a></li>
<li><a
href="https://github.com/gavinaiken/eslint-plugin-chai-expect-keywords">permitted
keywords</a></li>
<li><a
href="https://github.com/fintechstudios/eslint-plugin-chai-as-promised">with
chai-as-promised plugin</a> <!-- lint disable double-link --></li>
<li><a
href="https://github.com/t-huth/eslint-plugin-chai-assert-bdd">globals</a></li>
</ul></li>
<li><a
href="https://github.com/darrinholst/eslint-plugin-cucumber">Cucumber</a>
- Linting rules for Cucumber.</li>
<li><a
href="https://github.com/cypress-io/eslint-plugin-cypress">Cypress</a> -
Linting rules for Cypress.</li>
<li><a
href="https://github.com/tlvince/eslint-plugin-jasmine">Jasmine</a> -
Linting rules for Jasmine.</li>
<li>Jest
<ul>
<li><a
href="https://github.com/jest-community/eslint-plugin-jest">Enforcing
practices</a> - Linting rules for Jest.</li>
<li><a
href="https://github.com/dangreenisrael/eslint-plugin-jest-formatting">Enforcing
consistent formatting</a> - Formatting rules for Jest.</li>
<li><a
href="https://www.npmjs.com/package/eslint-plugin-jest-async">Jest-async</a>
- Async linting rule for Jest.</li>
<li><a
href="https://github.com/testing-library/eslint-plugin-jest-dom">Jest-DOM</a>
- Linting rules for Jest-DOM.</li>
</ul></li>
<li>Mocha
<ul>
<li><a href="https://github.com/lo1tuma/eslint-plugin-mocha">Enforcing
practices</a> - Linting rules for Mocha.</li>
<li><a
href="https://github.com/onechiporenko/eslint-plugin-mocha-cleanup/">Enforcing
manageability</a></li>
</ul></li>
<li><a
href="https://github.com/playwright-community/eslint-plugin-playwright">Playwright</a>
- Linting rules for Playwright.</li>
<li><a
href="https://github.com/platinumazure/eslint-plugin-qunit">QUnit</a> -
Linting rules for QUnit.</li>
<li><a
href="https://github.com/testcafe-community/eslint-plugin-testcafe-community">TestCafe-Community</a>
- TestCafe linting rules with env globals (fork from <a
href="https://github.com/miherlosev/eslint-plugin-testcafe">TestCafe
globals</a>).</li>
<li><a
href="https://github.com/testing-library/eslint-plugin-testing-library">Testing
Library</a> - Linting rules for Testing Library.</li>
</ul>
<h2 id="parsers">Parsers</h2>
<ul>
<li><a
href="https://github.com/babel/babel/tree/main/eslint/babel-eslint-parser">babel-eslint-parser</a>
- Allows you to lint ALL valid Babel code with the fantastic
ESLint.</li>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint">TypeScript</a>
- A TypeScript parser that produces output compatible with ESLint.</li>
<li><a
href="https://github.com/RokuRoad/eslint-plugin-roku">BrightScript</a> -
BrightScript plugin for Roku development. Includes Parser and
Rules.</li>
<li><a href="https://github.com/dotansimha/graphql-eslint">GraphQL</a> -
Parser for the GraphQL AST. Includes parser, plugin, processor (for
non-graphql files) and rules.</li>
</ul>
<h2 id="formatters">Formatters</h2>
<!-- ignore is to keep "github" lower-case -->
<!--lint ignore awesome-spell-check-->
<ul>
<li><a
href="https://github.com/shuoshubao/eslint-formatter-html">html</a> - A
enhanced ESLint formatter.</li>
<li><a
href="https://github.com/brettz9/eslint-formatter-badger">badger</a> -
Make SVG-based badges summarizing ESLint results (e.g., for use on a
README).</li>
<li><a
href="https://github.com/JamieMason/eslint-formatter-git-log">git-log</a>
- ESLint Formatter featuring Git Author, Date, and Hash.</li>
<li><a
href="https://github.com/hipstersmoothie/eslint-formatter-github">github</a>
- See ESLint errors and warnings directly in pull requests.</li>
<li><a
href="https://gitlab.com/remcohaszing/eslint-formatter-gitlab">gitlab</a>
- Output ESLint results in the GitLab code quality results.</li>
<li><a href="https://github.com/fengzilong/eslint-formatter-mo">mo</a> -
Good-lookin ESLint formatter and also for delightful reading
experience.</li>
<li><a
href="https://www.npmjs.com/package/@microsoft/eslint-formatter-sarif">SARIF</a>
- Generate a results in a SARIF format so it can be imported into tools
like GitHub Advanced Security.</li>
<li><a
href="https://github.com/davidjbradshaw/eslint-formatter-summary-chart">summary-chart</a>
- Format ESLint output into a bar chart.</li>
</ul>
<h2 id="globals">Globals</h2>
<ul>
<li><a
href="https://github.com/facebook/create-react-app/tree/main/packages/confusing-browser-globals">confusing-browser-globals</a>
- A curated list of browser globals that commonly cause confusion and
are not recommended to use without an explicit window. qualifier.</li>
<li><a href="https://github.com/sindresorhus/globals">ES and browser
globals</a> (originally from ESLint)</li>
<li><a
href="https://github.com/t-huth/eslint-plugin-chai-assert-bdd">chai
globals</a></li>
<li><a
href="https://github.com/miherlosev/eslint-plugin-testcafe">TestCafe
globals</a> - <code>fixture</code> &amp; <code>test</code> globals for
TestCafe.</li>
</ul>
<h2 id="tools">Tools</h2>
<ul>
<li><a
href="https://github.com/brettz9/es-file-traverse">es-file-traverse</a>
- 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.</li>
<li><a
href="https://github.com/sarbbottam/eslint-find-rules">eslint-find-rules</a>
- Find built-in ESLint rules you dont have in your custom config.</li>
<li><a
href="https://github.com/wagerfield/eslint-index">eslint-index</a> - CLI
for finding and managing rules in ESLint config files.</li>
<li><a
href="https://github.com/mizdra/eslint-interactive">eslint-interactive</a>
- The CLI tool to fix huge number of ESLint errors.</li>
<li><a
href="https://github.com/pimlie/eslint-multiplexer">eslint-multiplexer</a>
- Multiplex eslint results and merge results for common files.</li>
<li><a href="https://github.com/IanVS/eslint-nibble">eslint-nibble</a> -
Ease into ESLint, by fixing one rule at a time.</li>
<li><a
href="https://github.com/Jugbot/eslint-plugin-rule-adoption">eslint-plugin-rule-adoption</a>
- An eslint plugin for incremental rule adoption, when
<code>--fix</code> and codemods dont cut it.</li>
<li><a
href="https://github.com/jfmengels/eslint-rule-documentation">eslint-rule-documentation</a>
- Find the url for the documentation of an ESLint rule.</li>
<li><a href="https://github.com/rizowski/eslint-watch">eslint-watch</a>
- Run ESLint with watch mode.</li>
<li><a href="https://github.com/codacy/codacy-eslint">codacy-eslint</a>
- Docker used at <a href="https://www.codacy.com">Codacy</a> to run
ESLint.</li>
<li><a href="https://github.com/pinterest/esprint">esprint</a> - Run
ESLint across multiple threads.</li>
<li><a
href="https://github.com/eslint/generator-eslint">generator-eslint</a> -
Generate ESLint plugin and rules with <a
href="http://yeoman.io/">Yeoman</a>.</li>
<li><a href="https://github.com/fisker/editor-info">editor-info</a> -
Detect whether one is within an editor/IDE and which type, allowing one
to tweak ESLint configuration accordingly.</li>
<li><a
href="https://github.com/fengzilong/eslint-dashboard">eslint-dashboard</a>
- Interactive ESLint workflow that lives in your terminal.</li>
<li><a
href="https://github.com/AriPerkkio/eslint-remote-tester">eslint-remote-tester</a>
- CLI tool for testing given ESlint rules against multiple repositories
at once.</li>
</ul>
<h2 id="developing-for-eslint">Developing for ESLint</h2>
<ul>
<li><a
href="https://github.com/bmish/eslint-doc-generator">eslint-doc-generator</a>
- Generate documentation for your ESLint plugin including a rules table
for your readme and header for your rule docs.</li>
<li><a
href="https://github.com/wikimedia/eslint-docgen">eslint-docgen</a> -
Automatically generate ESLint plugin documentation from rule metadata
and test cases.</li>
</ul>
<h2 id="tutorials">Tutorials</h2>
<ul>
<li><a
href="https://medium.com/tumblbug-engineering/creating-an-eslint-plugin-87f1cb42767f">Creating
an ESLint Plugin</a> - Article walking through the creation of an ESLint
rule and plugin.</li>
<li><a
href="https://medium.com/@dan_abramov/lint-like-it-s-2015-6987d44c5b48#.5p3yk0b03">Lint
Like Its 2015</a> - Article walking through the benefits of using
ESLint.</li>
<li><a
href="http://blog.cowchimp.com/writing-a-custom-eslint-rule-to-spot-undeclared-props/">Writing
a rule to spot undeclared props hiding in plain sight</a> - Article
about creating rules that require scope analysis.</li>
<li><a href="https://adropincalm.com/blog/dear-old-eslint/">Dear Old
ESLint</a> - Quick intro article on ESLint.</li>
</ul>
<h2 id="installation-and-setup">Installation and Setup</h2>
<ul>
<li><a href="https://github.com/josh-stillman/lintier">Lintier</a> - CLI
to quickly scaffold an ESLint &amp; Prettier setup in a TypeScript
project.</li>
</ul>
<p><a href="https://github.com/dustinspecker/awesome-eslint">eslint.md
Github</a></p>