Courses & TutorialsProgramming
Awesome JavaScript ESLint – Massive Collection of Resources
Awesome ESLint
A list of awesome ESLint configs, plugins, etc.
Contents
- Configs
- Preconfigured Configs with ESLint Set up
- Plugins
- Parsers
- Formatters
- Globals
- Tools
- Developing for ESLint
- Tutorials
Configs
Configs by Well-Known Companies/Organizations
- Airbnb – Shareable config for Airbnb’s style guide.
- 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.
- Google – Shareable config for the Google style.
- React App – Sharable config for React projects.
- Shopify – Shareable config for Shopify’s style guide.
- Wikimedia – Shareable config for Wikimedia’s style guide, used by MediaWiki.
Other Prominent Configs (100 stars or so)
- Canonical – Shareable config for Canonical style guide.
- Standard – Shareable config for JavaScript Standard Style.
- XO – Shareable config for XO.
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.
- 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.
Preconfigured Configs with ESLint Set up
- Node.js Standard Style – Node.js core config.
- prettier-standard – Prettier formatter with custom eslint rules allowed.
- Standard – JavaScript Standard Style.
- Superlint – JavaScript Supermind Style.
- XO – JavaScript happiness style linter ❤️.
- Zoe – Universal JavaScript linter and formatter.
- Healthier – Code style agnostic version of Standard, perfect companion to Prettier.
Plugins
Code Quality
Compatiblity
- Compat – Lint browser compatibility of APIs used (caniuse as an ESLint plugin).
- ecmascript-compat – Disable ECMAScript language features not supported by your browserslist targets.
- es – Disable specific ECMAScript language versions or individual features.
- es5 – ESLint plugin for ES5 users (forbid ES2015+ usage).
- ie11 – Detect unsupported ES6 features in IE11.
CSS in JS
- CSS-modules – Lint undefined or unused rules for css modules.
- Emotion – ESLint rules for emotion.
- Styled Components
- Better Styled Components – Auto fixable ESlint’s rules for styled components.
- styled-components-a11y – A11y for Styled Components.
Deprecation
- deprecate – Mark functions or modules as deprecated and get lint messages when they are used.
- deprecation – Identifies use of jsdoc
@deprecated
functions. - disable – Disable specified plugins using file path patterns and inline comments.
Embedded
- HTML – Linting for JavaScript inside of HTML
<script>
tags. - Markdown – Linting for JavaScript inside of Markdown.
Frameworks
- AngularJS – Linting rules to adhere to the John Papa’s AngularJS Styleguide.
- Backbone – Linting rules for Backbone.
- Ember – Linting rules for Ember.
- Hapi – Linting rules for hapi.
- Meteor – Meteor specific linting rules.
- 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.
- Vue
- VueJS – Plugin for VueJS.
- VueJS Scoped CSS – Plugin for Scoped CSS in VueJS.
Languages
- Coffee – Enables linting CoffeeScript files with, with optional linting rules from the Coffeelint library.
- ES5
- Flow
- Flow – Flow type linting rules.
- Flow Errors – Run Flow as an ESLint plugin.
- JSON
- JSON – Lint your JSON files.
- JSON, package.json – Lint, format, and auto-fix your JSON files. Sort your
package.json
. - JSON with Comments – ESLint plugin for JSON, JSONC and JSON5.
- MDX – ESLint Parser/Plugin for MDX.
- Node – Additional ESLint’s rules for Node.js.
- SQL – SQL linting rules for ESLint.
- TypeScript – Linting rules for TypeScript.
Libraries
- GraphQL
- dotansimha/graphql-eslint – Validates, prettifies and checks your GraphQL operations and GraphQL schema for best-practices.
- apollostack/eslint-plugin-graphql – Check your GraphQL query strings against a schema.
- 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
@example
). - 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)
- Mongodb – Mongodb native Node.js driver linting rules.
- Ramda – Ramda specific linting rules.
- RequireJS – Linting rules for RequireJS.
Misc
- ESLint Comments – Best practices about ESLint directive comments (
/*eslint-disable*/
, etc.). - eslint-plugin-eslint-plugin – An ESLint plugin for linting ESLint plugins.
- @mysticatea/eslint-plugin – Misc. 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 putout linter into ESLint.
- TypeLint – Introduces types, based on existing schemas (Swagger, Redux) and linting access to object properties, preventing
undefined
errors. - Woke – Helps catch insensitive words, promoting an inclusive codebase.
Practices
- 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.
- 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.
- new-with-error – Require errors to be thrown using
new
. - 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.
- RegExp – ESLint plugin for finding regexp mistakes and style guide violations.
- sort-keys-fix – Adds fixer for ESLint
sort-keys
rule. - this – Write pure functions, don’t allow
this
. - toplevel – An eslint plugin for disallow side effect at module toplevel.
Performance
- DOM
- Optimize Regex – Optimize regex literals.
- Perf-Standard plugin and Config
Security
- no-secrets – An eslint plugin that detects potential secrets/credentials.
- no-unsanitized – Checks for
innerHTML
,outerHTML
, etc. - ScanJS config and plugin – Security-related rules.
- Security – ESLint rules for Node Security.
- xss – Tries to detect XSS issues in codebase before they end up in production.
Style
- editorconfig – Derive rules from
.editorconfig
- filenames – Ensure consistent filenames for your JavaScript files.
- Simple import sort – Easy autofixable import sorting.
- Switch case – Switch-case-specific linting rules for ESLint.
Testing Tools
- AVA – Linting rules for AVA.
- Chai
- Cucumber – Linting rules for Cucumber.
- Cypress – Linting rules for Cypress.
- Jasmine – Linting rules for Jasmine.
- Jest
- Enforcing practices – Linting rules for Jest.
- Enforcing consistent formatting – Formatting rules for Jest.
- Jest-async – Async linting rule for Jest.
- Jest-DOM – Linting rules for Jest-DOM.
- Mocha
- Enforcing practices – Linting rules for Mocha.
- Enforcing manageability
- QUnit – Linting rules for QUnit.
- Testcafe – Linting rules for Testcafe.
- Testing Library – Linting rules for Testing Library.
Parsers
- Babel – Use Babel’s parser for linting all Babel features.
- 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
- 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.
- summary-chart – Format ESLint output into a bar chart.
Globals
- Restricted Globals – Expect
window
qualifier on globals that may otherwise be confusable as local variables. - ES and browser globals (originally from ESLint)
- chai globals
Tools
- 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-cli – This is the
eslint
command that executes a local installed ESLint. - 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-multiplexer – Multiplex eslint results and merge results for common files.
- eslint-nibble – Ease into ESLint, by fixing one rule at a time.
- 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 Codacy to run ESLint.
- esprint – Run ESLint across multiple threads.
Developing for ESLint
- eslint-docs – Keep your rule descriptions up-to-date across the repository.
Tutorials
- Creating an ESLint Plugin – Article walking through the creation of an ESLint rule and plugin.
- Lint Like It’s 2015 – Article walking through the benefits of using ESLint.
- Linting JavaScript with ESLint – Video showing ESLint setup and basics.
- Linting React JSX with ESLint (in ES6) – Video showing how to use React and JSX with ESLint.
- Plugin Module with Mixins – Article on how to write a plugin as a node module containing modular mixin configuration.
- Writing a rule to spot undeclared props hiding in plain sight – Article about creating rules that require scope analysis.
Tags
Javascript