Awesome Lists

awesome-eslint

by dustinspecker

awesome listpushed almost 2 years ago

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
View on GitHub

Embed the badge

Show how many awesome lists link to your project. The count updates automatically.

Awesome Lists badge
Markdown
[![Awesome Lists Badge](https://awesome.facts.dev/shield/dustinspecker/awesome-eslint/links.svg)](https://awesome.facts.dev/awesome/dustinspecker/awesome-eslint)
HTML
<a href="https://awesome.facts.dev/awesome/dustinspecker/awesome-eslint"><img src="https://awesome.facts.dev/shield/dustinspecker/awesome-eslint/links.svg" alt="Awesome Lists Badge" /></a>
Image URL
https://awesome.facts.dev/shield/dustinspecker/awesome-eslint/links.svg

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

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

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

  • HTML

    Linting for JavaScript inside of HTML tags

  • Markdown

    Linting for JavaScript inside of Markdown

Plugins / Frameworks

  • Angular

    Linting rules for Angular (v2+)

  • AngularJS

    Linting rules to adhere to the

  • Astro

    Plugin for

  • Backbone

    Linting rules for Backbone

  • Custom Elements

    Rules by GitHub for Custom Elements

  • Ember

    Linting rules for Ember

  • Hapi

    Linting rules for hapi

  • Meteor

    Meteor specific linting rules for ESLint

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

  • Solid

    Linting rules for Solid and JSX

  • Svelte

    Linting rules for Svelte v3 Components

Plugins / Frameworks / Vue

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

  • MDX

    ESLint Parser/Plugin for MDX

  • N

    Additional ESLint's rules for Node.js. Properly maintained fork of no longer maintained

  • SQL

    SQL linting rules for ESLint

  • TOML

    ESLint plugin for TOML

  • TypeScript

    Linting rules for TypeScript

  • YAML

    ESLint plugin for YAML

Plugins / Libraries / GraphQL

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

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

  • Cucumber

    Linting rules for Cucumber

  • Cypress

    Linting rules for Cypress

  • Jasmine

    Linting rules for Jasmine

Plugins / Testing Tools / Jest

Plugins / Testing Tools / Mocha

Plugins / Testing Tools

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

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

Installation and Setup

  • Lintier

    CLI to quickly scaffold an ESLint & Prettier setup in a TypeScript project

More related projects

Add a GitHub project

Missing a project or an awesome list? Paste its GitHub URL and we fetch it right away.