Package Exports
- @eslint-react/eslint-plugin
- @eslint-react/eslint-plugin/package.json
Readme
ESLint x React
A set of ESLint rules to catch common mistakes and improve your React code.
Supported engines
Node.js
- 18.x LTS Hydrogen
- 20.x Current
Bun
- 1.0.11 or later
Installation
# npm
npm install --save-dev @eslint-react/eslint-plugin
# pnpm
pnpm add --save-dev @eslint-react/eslint-plugin
# yarn
yarn add --dev @eslint-react/eslint-plugin
# bun
bun add --dev @eslint-react/eslint-plugin
Usage
.eslintrc.js
module.exports = {
root: true,
env: { browser: true, es2021: true },
parser: "@typescript-eslint/parser",
extends: [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:react-hooks/recommended",
"plugin:@eslint-react/recommended-legacy",
],
plugins: ["@typescript-eslint", "react-hooks"],
ignorePatterns: ["dist", ".eslintrc.js"],
};
eslint.config.js
(requires eslint >= v8.23.0)
import ts from "@typescript-eslint/eslint-plugin";
import tsParser from "@typescript-eslint/parser";
import react from "@eslint-react/eslint-plugin";
import reactHooks from "eslint-plugin-react-hooks";
export default [
// TypeScript rules
{
files: ["**/*.ts"],
ignores: ["eslint.config.js"],
languageOptions: {
parser: tsParser,
sourceType: "module",
},
plugins: {
"@typescript-eslint": ts,
},
rules: {
...ts.configs["eslint-recommended"].rules,
...ts.configs["recommended"].rules,
},
},
// React hooks rules
{
files: ["src/**/*.{ts,tsx}"],
plugins: {
"react-hooks": reactHooks,
},
rules: {
...reactHooks.configs.recommended.rules,
},
},
// React rules
{
files: ["src/**/*.{ts,tsx}"],
...react.configs.recommended,
},
];
Rules
Philosophy
- Focus on code rather than style.
- Linting errors are better than runtime crashes.
- Types are the fundamental unit of correctness.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Inspiration
- eslint-plugin-perfectionist
- eslint-plugin-solid
- eslint-plugin-functional
- eslint-plugin-filenames-simple
- @tanstack/eslint-plugin-query
- rome/tools
- rust-clippy