-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.eslintrc
106 lines (106 loc) · 4.7 KB
/
.eslintrc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
{
"parser": "@typescript-eslint/parser",
"env": {
"browser": true,
"commonjs": true,
"es6": true
},
"parserOptions": {
"ecmaFeatures": {
"jsx": true
},
"ecmaVersion": 11,
"sourceType": "module"
},
"globals": {
"process": true,
"__dirname": true,
"React": true,
"PUBLIC_BASE_URL": true
},
"plugins": [
"react",
"react-hooks",
"prettier"
],
"extends": [
"react-app",
"plugin:prettier/recommended",
"plugin:react/recommended",
"eslint:recommended",
"prettier"
],
"rules": {
"prettier/prettier": "error",
// 基础配置
"no-eval": 2, // 禁用 eval()
"eqeqeq": 2, // 强制全等( === 和 !==)
"semi": [2, "always"], // 语句强制分号结尾
"@typescript-eslint/no-unused-vars": [2], // 禁止出现未使用的变量
"arrow-parens": [2, "as-needed"], // 箭头函数参数括号,一个参数时可省略括号
"arrow-spacing": [2, { "before": true, "after": true }], // 箭头函数,箭头前后空格
"max-len": [2, { "code": 150 }],
"react/jsx-indent": [2, 2],
// "space-before-function-paren": 2, // 函数声明时括号与函数名间加空格
"space-infix-ops": 2, // 字符串拼接操作符 (Infix operators) 之间要留空格
"comma-spacing": 2, // 逗号后面加空格
"array-bracket-spacing": [2, "never"], // []内是否允许不必要的空格
"no-multiple-empty-lines": [2, { "max": 1 }], // 不允许有连续多行空行
"block-spacing": 2, // 单行代码块两边加空格
"key-spacing": 2, // 键值对当中冒号与值之间要留空白
"spaced-comment": 2, // 注释首尾留空格
"space-in-parens": 2, // 圆括号间不留空格
"space-unary-ops": [2, { "words": true, "nonwords": false }], // 强制在一元操作符前后使用一致的空格
"new-cap": [2, { "newIsCap": true, "capIsNew": false }], // 要求构造函数首字母大写
"no-const-assign": 2, // 禁止修改 const 声明的变量
"prefer-const": 2, // 要求使用 const 声明那些声明后不再被修改的变量
"no-dupe-args": 2, // 禁止 function 定义中出现重名参数
"no-dupe-class-members": 2, // 禁止类成员中出现重复的名称
"no-dupe-keys": 2, // 禁止对象字面量中出现重复的 key
"no-empty-pattern": 2, // 禁止使用空解构模式
"no-extra-parens": [2, "functions"], // 禁止不必要的括号 (a * b) + c; 报错
"no-inner-declarations": [2, "functions"], // 禁止在嵌套的块中出现 function 或 var 声明
"no-redeclare": 2, // 禁止使用 var 多次声明同一变量
"no-regex-spaces": 2, // 禁止正则表达式字面量中出现多个空格
"no-self-assign": 2, // 禁止自我赋值
"no-self-compare": 2, // 禁止自身比较
"use-isnan": 2, // 要求使用 isNaN() 检查 NaN
"yield-star-spacing": [2, "both"], // 强制在 yield* 表达式中 * 周围使用空格
"template-curly-spacing": [2, "never"], // 要求或禁止模板字符串中的嵌入表达式周围空格的使用
"handle-callback-err": [2, "^(err|error)$"], // 要求回调函数中有容错处理
"no-unmodified-loop-condition": 2, // 禁用一成不变的循环条件
"no-sparse-arrays": 2, // 禁用稀疏数组
"no-multi-str": 2, // 禁止使用多行字符串,在 JavaScript 中,可以在新行之前使用斜线创建多行字符串
"no-multi-spaces": 2, // 禁止使用多个空格
"no-func-assign": 2, // 禁止重复的函数声明
"no-duplicate-case": 2, // 禁止重复的 case 标签
"generator-star-spacing": [2, { "before": true, "after": true }], // 强制 generator 函数中 * 号周围使用一致的空格
"valid-typeof": 2, // 必须使用合法的typeof的值
// 禁止不必要的计算性能键对象的文字
"no-useless-computed-key": 2,
"no-useless-constructor": 2,
// 禁止在return、throw、continue 和 break语句之后出现不可达代码
"no-unreachable": 2,
"no-unsafe-finally": 2,
// 换行时运算符在行尾还是行首
"operator-linebreak": [2, "after", {
"overrides": {
"?": "before",
":": "before"
}
}],
// react配置
"react/sort-comp": [2], // 强制组件方法顺序
"react/jsx-uses-react": "off",
"react/react-in-jsx-scope": "off",
"react/self-closing-comp": [2, { "component": true, "html": false }], // 结束标签,组件省略闭合标签,html不省略闭合标签
"react-hooks/rules-of-hooks": [2], // 检查 Hook 的规则,不允许在if for里面使用
"react-hooks/exhaustive-deps": [1] // 检查 effect 的依赖
},
"settings": {
"import/ignore": ["node_modules"],
"react": {
"version": "detect"
}
}
}