Package Exports
- @eslint-react/eslint-plugin
- @eslint-react/eslint-plugin/package.json
Readme
ESLint React
A series of composable ESLint rules for React and friends.
Features
- Performant: Built with performance in mind, optimized for large codebases.
- Future-proof: Forward-looking architecture that anticipates future changes in React and TypeScript.
- Precision Control: Fully customizable rule severity levels, allowing you to enforce or relax rules as needed.
- Context-aware Linting: Rules dynamically adapt to code structure and project settings, minimizing noise while maximizing relevance.
Public Packages
Modular
eslint-plugin-react-x
- X Rules (renderer-agnostic, compatible with x-platform).eslint-plugin-react-dom
- DOM specific rules for React DOM.eslint-plugin-react-web-api
- Rules for interacting with Web APIs.eslint-plugin-react-hooks-extra
- Extra React Hooks rules.eslint-plugin-react-naming-convention
- Naming convention rules.
All-In-One
@eslint-react/eslint-plugin
- Main plugin combining all rules and presets from the above packages.
Installation
[!NOTE]
ESLint React requires the following minimum versions:
node@18.18.0
eslint@8.57.0
typescript@4.9.5
Install
npm install --save-dev typescript-eslint @eslint-react/eslint-plugin
Setup
// eslint.config.js
// @ts-check
import eslintJs from "@eslint/js";
import eslintReact from "@eslint-react/eslint-plugin";
import tseslint from "typescript-eslint";
export default tseslint.config({
files: ["**/*.ts", "**/*.tsx"],
extends: [
eslintJs.configs.recommended,
tseslint.configs.recommended,
eslintReact.configs["recommended-typescript"],
],
languageOptions: {
parser: tseslint.parser,
parserOptions: {
projectService: true,
tsconfigRootDir: import.meta.dirname,
},
},
rules: {
// Put rules you want to override here
"@eslint-react/no-class-component": "error",
},
});
Presets
Bare Bones
x
Enable rules for"react"
.dom
Enable rules for"react-dom"
.web-api
Enable rules for interacting with Web APIs.
General Purpose
recommended
Enforce rules that are recommended by ESLint React for general purpose React + React DOM projects.
This preset includes thex
,dom
, andweb-api
presets.
TypeScript Specialized
recommended-typescript
Same as therecommended
preset but disables rules that can be enforced by TypeScript.recommended-type-checked
Same as therecommended-typescript
preset but enables additional rules that require type information.
Other
disable-dom
Disable rules in thedom
preset.disable-web-api
Disable rules in theweb-api
preset.disable-type-checked
Disable rules that require type information.off
Disable all rules in this plugin except for debug rules.
Rules
FAQ
Roadmap
Contributing
Contributions are welcome!
Please follow our contributing guidelines.
License
This project is licensed under the MIT License - see the LICENSE file for details.