Skip to content

Commit 62a94c2

Browse files
authored
Merge pull request #15 from Sorkai/chore/eslint-upgrade
升级 ESLint 至 v9 并采用 Flat Config
2 parents 83fe7a0 + 48fa48a commit 62a94c2

5 files changed

Lines changed: 1455 additions & 943 deletions

File tree

eslint.config.cjs

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
/* ESLint v9 Flat Config for TypeScript + Node */
2+
3+
const js = require('@eslint/js');
4+
const globals = require('globals');
5+
const tsPlugin = require('@typescript-eslint/eslint-plugin');
6+
const tsParser = require('@typescript-eslint/parser');
7+
8+
module.exports = [
9+
// 忽略目录
10+
{
11+
ignores: [
12+
'node_modules/',
13+
'out/',
14+
'dist/',
15+
'.vscode-test/'
16+
]
17+
},
18+
19+
// 针对 JS 文件(如果只用 TS,可删除此块)
20+
{
21+
...js.configs.recommended,
22+
files: ['**/*.{js,cjs,mjs}'],
23+
languageOptions: {
24+
globals: {
25+
...globals.node,
26+
...globals.es2021
27+
}
28+
}
29+
},
30+
31+
// TypeScript 文件
32+
{
33+
files: ['**/*.ts', '**/*.tsx'],
34+
languageOptions: {
35+
parser: tsParser,
36+
parserOptions: {
37+
sourceType: 'module',
38+
tsconfigRootDir: __dirname,
39+
// 若启用需要类型信息的规则,请保留 project。若不需要,可注释掉以提升性能。
40+
project: ['./tsconfig.json']
41+
},
42+
globals: {
43+
...globals.node,
44+
...globals.es2021
45+
}
46+
},
47+
plugins: {
48+
'@typescript-eslint': tsPlugin
49+
},
50+
rules: {
51+
// 推荐规则
52+
...tsPlugin.configs.recommended.rules,
53+
// 如需类型检查规则,额外启用:
54+
...tsPlugin.configs['recommended-requiring-type-checking'].rules
55+
}
56+
},
57+
58+
// 测试代码放宽 require 语法限制(防止 @typescript-eslint/no-require-imports 阻塞)
59+
{
60+
files: ['src/test/**/*.{ts,tsx,js}'],
61+
rules: {
62+
'@typescript-eslint/no-require-imports': 'off'
63+
}
64+
}
65+
];

0 commit comments

Comments
 (0)