1// .eslintrc.js
2module.exports = {
3 env: {
4 browser: true, // 浏览器端
5 commonjs: true, // 支持CJS
6 es2021: true, // 支持ES2021及之前的所有语法
7 },
8 extends: [
9 'eslint:recommended',
10 'airbnb-base',
11 'plugin:@typescript-eslint/recommended',
12 'plugin:prettier/recommended', // 使用 Prettier 来自动格式化代码
13 'prettier', // 使用 Prettier 来自动格式化代码
14 ],
15 parser: '@babel/eslint-parser',
16 plugins: ['import', '@typescript-eslint', 'prettier'],
17 overrides: [
18 {
19 files: ['*.ts', '*.tsx'],
20 parser: '@typescript-eslint/parser',
21 },
22 ],
23 parserOptions: {
24 ecmaFeatures: {
25 experimentalObjectRestSpread: true,
26 jsx: true,
27 },
28 ecmaVersion: 'latest',
29 sourceType: 'module',
30 },
31 settings: {
32 'import/extensions': ['.js', '.jsx', '.tsx', '.ts'],
33 'import/resolver': {
34 node: { extensions: ['.js', '.jsx', '.tsx', '.ts'] },
35 alias: {
36 map: [['src', './src']],
37 extensions: ['.js', '.jsx', '.tsx', '.ts'],
38 },
39 },
40 },
41 rules: {
42 // 添加你的规则
43 'no-extra-semi': 'error', // 禁止多余的分号
44 'comma-dangle': 'off', // 关闭逗号结尾规则
45 'linebreak-style': 'off', // 关闭换行风格规则
46 'object-curly-spacing': 'off', // 关闭对象大括号内的空格规则
47 'no-shadow': 'off', // 关闭变量声明遮蔽检查
48 'default-param-last': 'off', // 关闭默认参数在最后的规则
49 'prettier/prettier': ['error'], // 启用 Prettier 规则
50 },
51 };