/eslint-react

A series of composable ESLint plugins 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 plugins for libraries and frameworks that use React as a UI runtime.

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 rule options.

Public packages

All-in-one plugins

Mono plugins (will be available in 2.0)

Who is using?

Data collected from GitHub dependents network, if there are any mismatch or outdated information, feel free to open issue or pull request.

Find more on GitHub Dependents.

Install

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

# yarn
yarn add --dev @eslint-react/eslint-plugin

# pnpm
pnpm add --save-dev @eslint-react/eslint-plugin

Setup

Flat Config

Add the plugin to your eslint.config.js:

// @ts-check

import js from "@eslint/js";
import react from "@eslint-react/eslint-plugin";
import * as tsParser from "@typescript-eslint/parser";

export default [
  js.configs.recommended,
  {
    files: ["**/*.{ts,tsx}"],
    ...react.configs.recommended,
    languageOptions: {
      parser: tsParser,
    },
  },
];

Legacy Config

Click to toggle contents

Add the plugin to your .eslintrc.json:

{
  "parser": "@typescript-eslint/parser",
  "plugins": ["@eslint-react/eslint-plugin"],
  "extends": ["eslint:recommended"],
  "overrides": [
    {
      "files": ["**/*.{ts,tsx}"],
      "extends": [
        "plugin:@eslint-react/recommended-legacy"
      ]
    }
  ]
}

Full Installation Guide ↗

Presets

Flat Config

  • core
    Enable rules that are renderer-agnostic.
  • dom
    Enable rules that are specific to React DOM.
  • web-api
    Enable rules for interacting with Web APIs.
  • recommended
    Enable rules that are recommended by ESLint React.
    This preset includes the core, dom, and web-api presets.
  • recommended-type-checked
    Enable rules that are recommended by ESLint React with additional rules that require type information.
    This preset includes the recommended preset.

Legacy Config

Click to toggle contents
  • core-legacy
    Enable rules that are renderer-agnostic.
  • dom-legacy
    Enable rules that are specific to React DOM.
  • web-api-legacy
    Enable rules for interacting with Web APIs.
  • recommended-legacy
    Enable rules that are recommended by ESLint React.
    This preset includes the core-legacy, dom-legacy, and web-api-legacy presets.
  • recommended-type-checked-legacy
    Enable rules that are recommended by ESLint React with additional rules that require type information.
    This preset includes the recommended-legacy preset.

Full Presets List↗

Rules

Rules Overview ↗

FAQ

Frequently Asked Questions ↗

Roadmap

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