-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.eslintrc
213 lines (150 loc) · 5.06 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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
// 官方文档 http://eslint.org/docs/rules/
{
"parserOptions": {
"ecmaVersion" : 8
},
"env": {
"es6": true,
"node": true
},
// "extends": "eslint:recommended",
// 规则按照首字母在字母表升序排序
"rules": {
// 单行代码块大括号后需要一个空格
"block-spacing": 2,
// 不使用外部块定义的变量
"block-scoped-var": 1,
// 大括号位置
"brace-style": [2, "1tbs"],
// 变量命名规则
"camelcase": [0, { "properties": "never" }],
// 逗号后使用空格
"comma-spacing": 2,
// 逗号位置
"comma-style": [2, "last"],
// 要求使用一致的 return 语句
"consistent-return": 2,
// 使用语句大括号
"curly": [2, "all"],
// 需要default在SwitchCase
"default-case": 2,
// 属性读取方式
// `foo['bar'] -> foo.bar`
"dot-notation": [1, { "allowKeywords": true }],
// 要求或禁止文件末尾保留一行空行
"eol-last": 0,
// 相等判断尽可能使用`===`
"eqeqeq": 1,
// 使用函数声明还是是函数表达式
"func-style": ["error", "expression"],
// 缩进空格
// `SwitchCase`时需要一个空格
"indent": [0, 4, {"SwitchCase": 1, "MemberExpression": 0}],
// 分号之间的空格
"key-spacing": [2, { "beforeColon": false, "afterColon": true }],
// 换行符格式
"linebreak-style": [2, "unix"],
// 要求构造函数首字母大写
"new-cap": 0,
// 类构建函数需要括号
"new-parens": 2,
// 不允许使用`alert`函数
"no-alert": 2,
// 数组尽量不使用构造函数
"no-array-constructor": 2,
// 不使用`console`
"no-console": 0,
//不允许改变用const声明的变量
"no-const-assign": 2,
// 不使用`var x; delete x;`
"no-delete-var": 2,
//禁止空块语句
"no-empty": 1,
// 不使用`eval`
"no-eval": 2,
//禁用不必要的分号
"no-extra-semi": 2,
// 不允许扩展原生类型
"no-extend-native": 2,
// 不使用不必要的bind
"no-extra-bind": 2,
// 不允许不停止SwitchCase的
"no-fallthrough": 2,
// 使用显式的浮点数定义
// `.5 -> 0.5`
"no-floating-decimal": 2,
// 不使用非显式的函数执行
// `setTimeout("alert('Hi!');", 100);`
"no-implied-eval": 2,
// 不使用非显式this关键字
"no-invalid-this": 1,
// 不使用非遍历情况的label
"no-labels": 2,
// 不使用和变量同名的便签名
"no-label-var": 2,
// 禁止循环中存在函数
"no-loop-func": 2,
// 不允许缩进不统一
"no-mixed-spaces-and-tabs": [2],
// 不允许重复使用分隔空格
"no-multi-spaces": 2,
// 不允许转义换行符连接字符串
"no-multi-str": 2,
// 不允许赋值到关键字
"no-native-reassign": 2,
// 不嵌套ternary
// `var foo = bar ? baz : qux === quxx ? bing : bam;`
"no-nested-ternary": 2,
// 使用`new`需要赋值
"no-new": 2,
// 禁用Function构造函数
// `var x = new Function("a", "b", "return a + b");`
"no-new-func": 2,
// 禁止使用 Object 构造函数
"no-new-object": 2,
// 原始类型不使用`new`
// `typeof new String('foo') == 'object'`
// `typeof String('foo') == 'string'`
"no-new-wrappers": 2,
// 不使用八进制数字
// `var num = 071; -> 57`
"no-octal": 2,
"no-octal-escape": 2,
// 不使用被废弃的`__proto__`
"no-proto": 2,
//禁用 process.exit()
"no-process-exit": 1,
// 不重复声明变量
"no-redeclare": 2,
// 返回语句不赋值
"no-return-assign": 2,
// 不使用不加括号的逗号运算符
"no-sequences": 2,
// 禁止变量声明覆盖外层作用域的变量
"no-shadow": [2, { "builtinGlobals": false, "hoist": "functions", "allow": [] }],
//禁用行尾空白
"no-trailing-spaces": 0,
//在构造函数中禁止在调用super()之前使用this或super
"no-this-before-super": 2,
//禁用未声明的变量
"no-undef": 2,
//禁止标识符中有悬空下划线
"no-underscore-dangle": 0,
//禁止在 return、throw、continue 和 break 语句后出现不可达代码
"no-unreachable": 1,
//禁止未使用过的变量
"no-unused-vars": 1,
// 引号
"quotes": [2, "single", {"avoidEscape": true, "allowTemplateLiterals": true}],
// 分号
"semi": [2, "always"],
//强制 typeof 表达式与有效的字符串进行比较
"valid-typeof": 2,
//要求或者禁止Yoda条件
"yoda": 0
},
"globals": {
"echo": true,
"__thinkorm": true
}
}