-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.eslintrc
450 lines (450 loc) · 12 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
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
{
//一旦配置了root,ESlint停止在父级目录中查找配置文件
"root": true,
//想要支持的JS语言选项
"parserOptions": {
//启用ES6语法支持(如果支持es6的全局变量{env: {es6: true}},则默认启用ES6语法支持)
//此处也可以使用年份命名的版本号:2015
"parser": "babel-eslint",
"ecmaVersion": 2017,
//默认为script
"sourceType": "module",
//支持其他的语言特性
"ecmaFeatures": {
//...
}
},
//代码运行的环境,每个环境都会有一套预定义的全局对象,不同环境可以组合使用
"env": {
"es6": true,
"browser": true,
"jquery": true
},
//访问当前源文件中未定义的变量时,no-undef会报警告。
//如果这些全局变量是合规的,可以在globals中配置,避免这些全局变量发出警告
"globals": {
//配置给全局变量的布尔值,是用来控制该全局变量是否允许被重写
"test_param": true
},
//支持第三方插件的规则,插件以eslint-plugin-作为前缀,配置时该前缀可省略
//检查vue文件需要eslint-plugin-vue插件
"plugins": [
"vue"
],
//集成推荐的规则
"extends": [
"eslint:recommended",
"plugin:vue/essential"
],
//启用额外的规则或者覆盖默认的规则
//规则级别分别:为"off"(0)关闭、"warn"(1)警告、"error"(2)错误--error触发时,程序退出
"rules": {
"comma-dangle": [
"error",
"never"
],
//是否允许对象中出现结尾逗号
"no-cond-assign": 2,
//条件语句的条件中不允许出现赋值运算符
"no-console": 0,
//不允许出现console语句
"no-constant-condition": 2,
//条件语句的条件中不允许出现恒定不变的量
"no-control-regex": 2,
//正则表达式中不允许出现控制字符
"no-debugger": 2,
//不允许出现debugger语句
"no-dupe-args": 2,
//函数定义的时候不允许出现重复的参数
"no-dupe-keys": 2,
//对象中不允许出现重复的键
"no-duplicate-case": 2,
//switch语句中不允许出现重复的case标签
"no-empty": 2,
//不允许出现空的代码块
"no-empty-character-class": 2,
//正则表达式中不允许出现空的字符组
"no-ex-assign": 2,
//在try catch语句中不允许重新分配异常变量
"no-extra-boolean-cast": 2,
//不允许出现不必要的布尔值转换
"no-extra-parens": 0,
//不允许出现不必要的圆括号
"no-extra-semi": 2,
//不允许出现不必要的分号
"no-func-assign": 2,
//不允许重新分配函数声明
"no-inner-declarations": [
"error",
"functions"
],
//不允许在嵌套代码块里声明函数
"no-invalid-regexp": 2,
//不允许在RegExp构造函数里出现无效的正则表达式
"no-irregular-whitespace": 2,
//不允许出现不规则的空格
"no-negated-in-lhs": 2,
//不允许在in表达式语句中对最左边的运算数使用取反操作
"no-obj-calls": 2,
//不允许把全局对象属性当做函数来调用
"no-regex-spaces": 2,
//正则表达式中不允许出现多个连续空格
"quote-props": 1,
//对象中的属性名是否需要用引号引起来
"no-sparse-arrays": 2,
//数组中不允许出现空位置
"no-unreachable": 2,
//在return,throw,continue,break语句后不允许出现不可能到达的语句
"use-isnan": 2,
//要求检查NaN的时候使用isNaN()
"valid-jsdoc": [
0,
{
"requireReturn": false,
"requireParamDescription": false,
"requireReturnDescription": false
}
],
//强制JSDoc注释
"valid-typeof": [
"error",
{
"requireStringLiterals": true
}
],
//在使用typeof表达式比较的时候强制使用有效的字符串
"block-scoped-var": 2,
//将变量声明放在合适的代码块里
"complexity": 0,
//限制条件语句的复杂度
"consistent-return": 0,
//无论有没有返回值都强制要求return语句返回一个值
"curly": [
"error",
"all"
],
//强制使用花括号的风格
"default-case": 0,
//在switch语句中需要有default语句
"dot-notation": [
"error",
{
"allowKeywords": false,
"allowPattern": ""
}
],
//获取对象属性的时候使用点号
"eqeqeq": [
"error",
"smart"
],
//比较的时候使用严格等于
"no-alert": 1,
//不允许使用alert,confirm,prompt语句
"no-caller": 0,
//不允许使用arguments.callee和arguments.caller属性
"guard-for-in": 0,
//监视for in循环,防止出现不可预料的情况
"no-div-regex": 2,
//不能使用看起来像除法的正则表达式
"no-else-return": 0,
//如果if语句有return,else里的return不用放在else里
"no-labels": [
"error",
{
"allowLoop": false,
"allowSwitch": false
}
],
//不允许标签语句
"no-eq-null": 2,
//不允许对null用==或者!=
"no-eval": 2,
//不允许使用eval()
"no-extend-native": 0,
//不允许扩展原生对象
"no-extra-bind": 2,
//不允许不必要的函数绑定
"no-fallthrough": 2,
//不允许switch按顺序全部执行所有case
"no-floating-decimal": 2,
//不允许浮点数缺失数字
"no-implied-eval": 2,
//不允许使用隐式eval()
"no-iterator": 2,
//不允许使用__iterator__属性
"no-lone-blocks": 2,
//不允许不必要的嵌套代码块
"no-loop-func": 2,
//不允许在循环语句中进行函数声明
"no-multi-spaces": 0,
//不允许出现多余的空格
"no-multi-str": 2,
//不允许用\来让字符串换行
"no-global-assign": 2,
//不允许重新分配原生对象
"no-new": 0,
//不允许new一个实例后不赋值或者不比较
"no-new-func": 2,
//不允许使用new Function
"no-new-wrappers": 2,
//不允许使用new String,Number和Boolean对象
"no-octal": 2,
//不允许使用八进制字面值
"no-octal-escape": 2,
//不允许使用八进制转义序列
"no-param-reassign": 0,
//不允许重新分配函数参数
"no-proto": 2,
//不允许使用__proto__属性
"no-redeclare": 2,
//不允许变量重复声明
"no-return-assign": 2,
//不允许在return语句中使用分配语句
"no-script-url": 2,
//不允许使用javascript:void(0)
"no-self-compare": 2,
//不允许自己和自己比较
"no-sequences": 2,
//不允许使用逗号表达式
"no-throw-literal": 2,
//不允许抛出字面量错误 throw "error"
"no-unused-expressions": 0,
//不允许无用的表达式
"no-void": 2,
//不允许void操作符
"no-warning-comments": [
1,
{
"terms": [
"todo",
"fixme",
"any other term"
]
}
],
//不允许警告备注
"no-with": 2,
//不允许使用with语句
"radix": 0,
//使用parseInt时强制使用基数来指定是十进制还是其他进制
"vars-on-top": 0,
//var必须放在作用域顶部
"wrap-iife": [
2,
"any"
],
//立即执行表达式的括号风格
"yoda": [
2,
"never",
{
"exceptRange": true
}
],
//不允许在if条件中使用yoda条件
"strict": [
2,
"function"
],
//使用严格模式
"no-catch-shadow": 2,
//不允许try catch语句接受的err变量与外部变量重名
"no-delete-var": 2,
//不允许使用delete操作符
"no-label-var": 2,
//不允许标签和变量同名
"no-shadow": 0,
//外部作用域中的变量不能与它所包含的作用域中的变量或参数同名
"no-shadow-restricted-names": 2,
//js关键字和保留字不能作为函数名或者变量名
"no-undef": 0,
//不允许未声明的变量
"no-undef-init": 2,
//不允许初始化变量时给变量赋值undefined
"no-undefined": 0,
//不允许把undefined当做标识符使用
"vue/no-unused-vars": 0,
"vue/no-use-v-if-with-v-for": 0,
"vue/valid-v-for":0,
"no-unused-vars": [
0,
{
"vars": "all",
"args": "after-used"
}
],
//不允许有声明后未使用的变量或者参数
"no-use-before-define": [
0,
"nofunc"
],
//不允许在未定义之前就使用变量
"indent": [0, 4, { "SwitchCase": 1 }],
//强制一致的缩进风格
"brace-style": [
2,
"1tbs",
{
"allowSingleLine": false
}
],
//大括号风格
"camelcase": [
0,
{
"properties": "never"
}
],
//强制驼峰命名规则
"comma-style": [
2,
"last"
],
//逗号风格
"consistent-this": [
0,
"self"
],
//当获取当前环境的this是用一样的风格
"eol-last": 2,
//文件以换行符结束
"func-names": 0,
//函数表达式必须有名字
"func-style": 0,
//函数风格,规定只能使用函数声明或者函数表达式
"key-spacing": [
2,
{
"beforeColon": false,
"afterColon": true
}
],
//对象字面量中冒号的前后空格
"max-nested-callbacks": 0,
//回调嵌套深度
"new-cap": [
2,
{
"newIsCap": true,
"capIsNew": false
}
],
//构造函数名字首字母要大写
"new-parens": 2,
//new时构造函数必须有小括号
"newline-after-var": 0,
//变量声明后必须空一行
"no-array-constructor": 2,
//不允许使用数组构造器
"no-inline-comments": 0,
//不允许行内注释
"no-lonely-if": 0,
//不允许else语句内只有if语句
"no-mixed-spaces-and-tabs": [
2,
"smart-tabs"
],
//不允许混用tab和空格
"no-multiple-empty-lines": [
2,
{
"max": 2
}
],
//空行最多不能超过两行
"no-nested-ternary": 0,
//不允许使用嵌套的三目运算符
"no-new-object": 2,
//禁止使用new Object()
"fun-call-spacing": 0,
//函数调用时,函数名与()之间不能有空格
"no-ternary": 0,
//不允许使用三目运算符
"no-trailing-spaces": 2,
//一行最后不允许有空格
"no-underscore-dangle": 0,
//不允许标识符以下划线开头
"one-var": 0,
//强制变量声明放在一起
"operator-assignment": 0,
//赋值运算符的风格
"padded-blocks": [
2,
"never"
],
//块内行首行尾是否空行
"quotes": [
1,
"single",
"avoid-escape"
],
//引号风格
"semi": [
2,
"always"
],
//强制语句分号结尾
"semi-spacing": [
2,
{
"before": false,
"after": true
}
],
//分后前后空格
"sort-vars": 0,
//变量声明时排序
"space-before-blocks": [
2,
"always"
],
//块前的空格
"space-before-function-paren": [
2,
{
"anonymous": "always",
"named": "never"
}
],
//函数定义时括号前的空格
"space-infix-ops": [
2,
{
"int32Hint": true
}
],
//操作符周围的空格
"keyword-spacing": 2,
//关键字前后的空格
"space-unary-ops": [
2,
{
"words": true,
"nonwords": false
}
],
//一元运算符前后不要加空格
"wrap-regex": 2,
//正则表达式字面量用括号括起来
"no-var": 0,
//使用let和const代替var
"generator-star-spacing": [
2,
"both"
],
//生成器函数前后空格
"max-depth": 0,
//嵌套块深度
"max-len": 0,
//一行最大长度,单位为字符
"max-params": 0,
//函数最多能有多少个参数
"max-statements": 0,
//函数内最多有几个声明
"no-bitwise": 0,
//不允许使用位运算符
"no-plusplus": 0
//不允许使用++ --运算符
}
}