-
Notifications
You must be signed in to change notification settings - Fork 0
/
.eslintrc
191 lines (191 loc) · 5.43 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
/* eslint-disable */
{
/*设置解析器选项(必须设置这个属性)*/
"parserOptions": {
"ecmaVersion": 6,
// 指定想要支持的javascript版本,这里6表示es6
"sourceType": "module",
// 默认为"script",代码是ECMAScript准则,则设置为"module"
"ecmaFeatures": {
"jsx": true
// 启用JSX
}
},
/* 指定脚本的运行环境,支持定义多个 */
"env": {
"es6": true,
"node": true,
"browser": true
},
/* 使用第三方airbnb */
"extends": "airbnb",
/* airbnb包括以下三个插件,插件名称可以省略eslint-plugin-前缀 */
"plugins": [
"react",
"jsx-a11y",
"import"
],
"parser": "babel-eslint",
/* 全局变量配置 */
"globals": {
"$": true,
"React": true,
"Loadable": true,
"XHR": true,
"Configs": true,
"Constants": true,
"Utils": true,
"BaseComponent": true,
"wx": true,
"~style": true
},
/* 定义自己的规则 */
"rules": {
// 禁止末尾逗号
"comma-dangle": [
"error",
"never"
],
// 强制使用一致的换行符风格
"linebreak-style": 0,
// 强制在花括号中使用一致的空格
"object-curly-spacing": [
"error",
"never"
],
"indent": [
"error",
4
],
"react/react-in-jsx-scope": 0,
// "no-undef": 0,
// 要求或禁止使用分号代替 ASI
"semi": [
"error",
"always",
{
"omitLastInOneLineBlock": true
}
],
// 强制大括号内换行符的一致性
"object-curly-newline": 0,
// 要求箭头函数的参数使用圆括号
"arrow-parens": 0,
// 禁用不必要的构造函数
"no-useless-constructor": 0,
// 强制函数中的变量在一起声明或分开声明
"one-var": 0,
// 禁止使用特定的语法
"no-restricted-syntax": [
"error",
"WithStatement"
],
// 禁止直接调用 Object.prototypes 的内置属性
"no-prototype-builtins": 0,
// 强制类方法使用 this
"class-methods-use-this": 0,
"no-unused-expressions": [
"error",
{
"allowShortCircuit": true,
"allowTernary": true,
"allowTaggedTemplates": true
}
],
// 禁止标识符中有悬空下划线
"no-underscore-dangle": 0,
// 禁止使用一元操作符 ++ 和 --
"no-plusplus": 0,
// 要求或禁止文件末尾保留一行空行
"eol-last": 0,
// 模板字符串
"prefer-template": 0,
// 多个空格
"no-multi-spaces": 0,
// 禁止对 function 的参数进行重新赋值
"no-param-reassign": 0,
// 优先使用数组和对象解构
"prefer-destructuring": 0,
// 要求或禁止命名的 function 表达式
"func-names": 0,
"no-console": 0,
"spaced-comment": 0,
"no-proto": 0,
"no-unused-vars": [
"error",
{
"args": "none"
}
],
"global-require": 0,
"no-debugger": 0,
/*
* eslint-plugin-react
*/
// 避免使用 this 在无状态的功能组件
"react/no-this-in-sfc": 0,
"react/forbid-prop-types": 0,
"react/jsx-indent": [
"error",
4
],
"react/jsx-indent-props": [
"error",
4
],
// 执行组件方法的顺序
// "react/sort-comp": 0,
// props, state, and context 强制解构赋值
"react/destructuring-assignment": 0,
"react/jsx-filename-extension": [
1,
{
"extensions": [
".js",
".jsx"
]
}
],
// 验证JSX开放和关闭括号内和周围的空白
"react/jsx-tag-spacing": [
2,
{
"closingSlash": "never",
"beforeSelfClosing": "never",
"afterOpening": "never",
"beforeClosing": "allow"
}
],
"react/no-danger": 0,
/*
* eslint-plugin-import
*/
// 如果模块导出单个名称,则更喜欢缺省导出
"import/prefer-default-export": 0,
// 确保导入的模块可以解析到本地文件系统上的模块
"import/no-unresolved": [
2,
{
"ignore": [
"defer"
]
}
],
/*
* eslint-plugin-jsx-a11y
*/
"jsx-a11y/no-static-element-interactions": 0,
"jsx-a11y/click-events-have-key-events": 0,
"react/jsx-one-expression-per-line": 0,
"jsx-a11y/alt-text": 0,
"no-useless-return": 0,
"object-shorthand": 0,
"import/no-dynamic-require": 0,
"jsx-a11y/no-noninteractive-element-interactions": 0,
"react/jsx-no-bind": 0,
"react/jsx-no-undef": [2, { "allowGlobals": true }],
"array-callback-return": 0,
"max-len": 0,
"no-alert": 0
}
}