Skip to content

Commit f928d0b

Browse files
authored
feat: update React ESLint config (#51)
1 parent a1d0937 commit f928d0b

4 files changed

Lines changed: 38 additions & 46 deletions

File tree

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,29 @@
1-
import { fixupConfigRules } from '@eslint/compat';
21
import js from '@eslint/js';
3-
import reactJsx from 'eslint-plugin-react/configs/jsx-runtime.js';
4-
import react from 'eslint-plugin-react/configs/recommended.js';
2+
import { defineConfig, globalIgnores } from 'eslint/config';
53
import reactHooks from 'eslint-plugin-react-hooks';
4+
import reactRefresh from 'eslint-plugin-react-refresh';
65
import globals from 'globals';
76

8-
export default [
9-
{ languageOptions: { globals: globals.browser } },
10-
js.configs.recommended,
11-
...fixupConfigRules([
12-
{
13-
...react,
14-
settings: {
15-
react: { version: 'detect' },
16-
},
17-
},
18-
reactJsx,
19-
]),
7+
export default defineConfig([
8+
globalIgnores(['dist']),
209
{
21-
plugins: {
22-
'react-hooks': reactHooks,
10+
files: ['**/*.{js,jsx}'],
11+
extends: [
12+
js.configs.recommended,
13+
reactHooks.configs['recommended-latest'],
14+
reactRefresh.configs.vite,
15+
],
16+
languageOptions: {
17+
ecmaVersion: 2020,
18+
globals: globals.browser,
19+
parserOptions: {
20+
ecmaVersion: 'latest',
21+
ecmaFeatures: { jsx: true },
22+
sourceType: 'module',
23+
},
2324
},
2425
rules: {
25-
...reactHooks.configs.recommended.rules,
26+
'no-unused-vars': ['error', { varsIgnorePattern: '^[A-Z_]' }],
2627
},
2728
},
28-
{ ignores: ['dist/'] },
29-
];
29+
]);

template-eslint/react-js/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
"@eslint/compat": "^1.3.1",
1010
"@eslint/js": "^9.30.0",
1111
"eslint": "^9.30.0",
12-
"eslint-plugin-react": "^7.37.5",
1312
"eslint-plugin-react-hooks": "^5.2.0",
13+
"eslint-plugin-react-refresh": "^0.4.20",
1414
"globals": "^16.2.0"
1515
}
1616
}
Lines changed: 16 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,23 @@
1-
import { fixupConfigRules } from '@eslint/compat';
21
import js from '@eslint/js';
3-
import reactJsx from 'eslint-plugin-react/configs/jsx-runtime.js';
4-
import react from 'eslint-plugin-react/configs/recommended.js';
2+
import { globalIgnores } from 'eslint/config';
53
import reactHooks from 'eslint-plugin-react-hooks';
4+
import reactRefresh from 'eslint-plugin-react-refresh';
65
import globals from 'globals';
7-
import ts from 'typescript-eslint';
6+
import tseslint from 'typescript-eslint';
87

9-
export default [
10-
{ languageOptions: { globals: globals.browser } },
11-
js.configs.recommended,
12-
...ts.configs.recommended,
13-
...fixupConfigRules([
14-
{
15-
...react,
16-
settings: {
17-
react: { version: 'detect' },
18-
},
19-
},
20-
reactJsx,
21-
]),
8+
export default tseslint.config([
9+
globalIgnores(['dist']),
2210
{
23-
plugins: {
24-
'react-hooks': reactHooks,
25-
},
26-
rules: {
27-
...reactHooks.configs.recommended.rules,
11+
files: ['**/*.{ts,tsx}'],
12+
extends: [
13+
js.configs.recommended,
14+
tseslint.configs.recommended,
15+
reactHooks.configs['recommended-latest'],
16+
reactRefresh.configs.vite,
17+
],
18+
languageOptions: {
19+
ecmaVersion: 2020,
20+
globals: globals.browser,
2821
},
2922
},
30-
{ ignores: ['dist/'] },
31-
];
23+
]);

template-eslint/react-ts/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
"@eslint/compat": "^1.3.1",
1010
"@eslint/js": "^9.30.0",
1111
"eslint": "^9.30.0",
12-
"eslint-plugin-react": "^7.37.5",
1312
"eslint-plugin-react-hooks": "^5.2.0",
13+
"eslint-plugin-react-refresh": "^0.4.20",
1414
"globals": "^16.2.0",
1515
"typescript-eslint": "^8.35.1"
1616
}

0 commit comments

Comments
 (0)