/eslint-react

A series of composable ESLint rules for libraries and frameworks that use React as a UI runtime.

Primary LanguageTypeScriptMIT LicenseMIT

logo

ESLint React

Version Size Downloads

A series of composable ESLint rules for libraries and frameworks that use React as a UI runtime.

Roadmap

Features

  • Universal rules for libraries and frameworks that use React as a UI runtime.
  • Well designed rule behaviors and sensible defaults.
  • Maximum flexibility through minimum configuration options.

Public packages

All-in-one packages

Individual packages (will be available in 2.0)

  • eslint-plugin-react-core - Core rules (DOM Irrelevant, Render Target Agnostic, Formatting Independent).
  • eslint-plugin-react-dom - DOM specific rules for React DOM.
  • eslint-plugin-react-hooks-extra - Extra React Hooks rules.
  • eslint-plugin-react-naming-convention - Naming convention rules.

Supported React versions

  • 18.2.0 or later

Supported engines

Node.js

  • 18.18.0 or later

Bun

  • 1.0.15 or later

Install

# npm
npm install --save-dev @eslint-react/eslint-plugin

Setup

Add @eslint-react to the plugins section of your .eslintrc.js configuration file.

module.exports = {
  // ...
  parser: "@typescript-eslint/parser",
  extends: ["plugin:@eslint-react/recommended-legacy"],
  plugins: ["@eslint-react"],
  // ...
};

Full Installation Guide ↗

Presets

LegacyConfig presets

Important

These presets are for ESLint LegacyConfig (.eslintrc.*) only

  • recommended-legacy (plugin:@eslint-react/recommended-legacy)
    Enable rules that are recommended by ESLint React.
  • recommended-type-checked-legacy (plugin:@eslint-react/recommended-type-checked-legacy)
    Enable rules that are recommended by ESLint React with additional rules that require type information.
  • all-legacy (plugin:@eslint-react/all-legacy)
    Enable all rules in this plugin except for debug rules.
  • off-legacy (plugin:@eslint-react/off-legacy)
    Disable all rules in this plugin except for debug rules.

FlatConfig presets

Important

These presets are for ESLint FlatConfig (eslint.config.js) only

  • recommended
    Enable rules that are recommended by ESLint React.
  • recommended-type-checked
    Enable rules that are recommended by ESLint React with additional rules that require type information.
  • all
    Enable all rules in this plugin except for debug rules.
  • off
    Disable all rules in this plugin except for debug rules.

Full Presets List↗

Rules

Rules Overview ↗

Contributing

Before you start working on something, it's best to check if there is an existing issue first. It's also a good idea to reach the maintainer and confirm if it makes sense or if someone else is already working on it.

Please make sure to read the Contributing Guide before making a pull request.

Thank you to everyone contributing to ESLint React!

License

This project is licensed under the MIT License - see the LICENSE file for details.

Inspiration

Prior art