forked from keman5/welabx-g6
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.eslintrc.js
135 lines (135 loc) · 5.65 KB
/
.eslintrc.js
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
module.exports = {
root: true,
env: {
browser: true,
node: true,
},
extends: [
'plugin:vue/recommended',
'eslint:recommended',
],
parserOptions: {
parser: 'babel-eslint',
ecmaVersion: 2018,
sourceType: 'module',
},
plugins: [
'vue',
],
globals: {
$app: true,
},
rules: {
// 数组花括号两边的空格
'array-bracket-spacing': [2, 'never'],
// 'brace-style': [2, '1tbs', { 'allowSingleLine': true }],
// 在对象和数组中使用尾随逗号
'comma-dangle': [2, 'always-multiline'],
// 控制逗号在行尾出现还是在行首出现
'comma-style': [2, 'last'],
// 在非空文件的末尾添加空行
'eol-last': 2,
// 使用全等
'eqeqeq': [2, 'allow-null'],
// 给函数表达式命名
'func-names': 0,
// 无法解析 import 导入的值
'import/no-unresolved': 'off',
// 强制在对象冒号后面添加空格
'key-spacing': [2, { 'multiLine': { 'beforeColon': false, 'afterColon': true, 'align': 'value' } }],
// 构造函数首字母必须大写
'new-cap': 2,
// 通过new关键字调用函数时不允许省略括号
'new-parens': 2,
// 声明的变量后新增空行
'newline-after-var': 2,
// 不能使用 alert
'no-alert': 2,
// 允许使用 console.log
'no-console': 0,
// 生产环境不允许使用 debugger
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
// 不能声明重复的 key
'no-dupe-keys': 2,
// 不能声明重复的变量
'no-dupe-args': 2,
// 禁止使用不必要的分号
'no-extra-semi': 2,
// 不允许省略小数点前的 0
'no-floating-decimal': 2,
// 不允许使用无效的正则表达式字符串
'no-invalid-regexp': 2,
// 空行不允许超过两行
'no-multiple-empty-lines': [1, { 'max': 2 }],
// 不允许 new String,Number, Boolean
'no-new-wrappers': 2,
// 不允许调用 Math(),JSON()和Reflect()
'no-obj-calls': 2,
// 允许使用++
'no-plusplus': 0,
// 允许直接调用 hasOwnProperty 等
'no-prototype-builtins': 0,
// 不允许相同作用域下出现重复声明的变量
'no-redeclare': 2,
// 'no-shadow': 2,
// 调用的括号要紧跟函数名
'func-call-spacing': 2,
// 不允许稀疏数组
'no-sparse-arrays': 2,
// 允许使用_开头或结尾
'no-underscore-dangle': 0,
// 当存在更简单的选择时,不允许使用三元运算符。
'no-unneeded-ternary': 2,
// 不允许未使用的表达式
'no-unused-expressions': 0,
// 未使用的变量
'no-unused-vars': ['error', { 'vars': 'all', 'args': 'none', 'ignoreRestSiblings': false, 'varsIgnorePattern': '[_$iI]ndex|key|tem|val|value|[iI]gnored' }],
// 使用前必须先声明
'no-use-before-define': 0,
// 不允许使用 var 声明变量
'no-var': 2,
'object-curly-spacing': [2, 'always'],
// 强制使用简写语法
'object-shorthand': 2,
// 允许使用缩写运算符
'operator-assignment': [0, 'always'],
// 推荐使用 const
'prefer-const': 2,
// 使用展开运算符
'prefer-spread': 2,
// 使用单引号
'quotes': [1, 'single'],
// 强制提供基数 parseInt("071", 10)
'radix': 2,
// 不允许使用原子级变量更新, 例如 ctx.body = xxx; 改为 const _ctx = ctx; _ctx.body = xxx;
'require-atomic-updates': 2,
// 强制使用分号
'semi': [2, 'always'],
// 一元运算符前后空格
'space-unary-ops': [2, { 'words': true, 'nonwords': false }],
// 严格模式
'strict': 2,
// 不允许比较'NaN', 应该使用 isNaN(foo)
'use-isnan': 2,
// 强制执行有效的JSDoc注释
'valid-jsdoc': 0,
// 允许使用 v-html
'vue/no-v-html': 0,
// vue html 中的缩进
'vue/html-indent': ['error', 2, {
'attribute': 1,
'baseIndent': 1,
'closeBracket': 0,
'alignAttributesVertically': true,
'ignores': [],
}],
// vue 属性默认值
'vue/require-default-prop': 0,
// 单行元素及多行内容格式
'vue/singleline-html-element-content-newline': ['error', {
'ignoreWhenEmpty': true,
'ignoreWhenNoAttributes': true,
'ignores': ['html', 'body', 'article', 'hgroup', 'figure', 'main', 'section', 'header', 'footer', 'aside', 'nav', 'video', 'audio', 'canvas', 'details', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'p', 'dl', 'dd', 'ul', 'li', 'ol', 'label', 'form', 'input', 'img', 'textarea', 'th', 'tr', 'td', 'button', 'select', 'a', 'span', 'em', 'i', 'sub', 'sup', 'pre', 'code', 'table'],
}],
},
};