|
|
module.exports = {
|
|
|
"env": {
|
|
|
"browser": true,
|
|
|
"es6": true
|
|
|
},
|
|
|
"extends": [
|
|
|
"eslint:recommended",
|
|
|
"plugin:react/recommended"
|
|
|
],
|
|
|
"globals": {
|
|
|
"Atomics": "readonly",
|
|
|
"SharedArrayBuffer": "readonly",
|
|
|
"require": true,
|
|
|
"module": true,
|
|
|
"__dirname": true,
|
|
|
"process": true
|
|
|
},
|
|
|
// 解析器用于解析代码
|
|
|
"parser": "babel-eslint",
|
|
|
"parserOptions": {
|
|
|
"ecmaFeatures": {
|
|
|
"jsx": true
|
|
|
},
|
|
|
"ecmaVersion": 2018,
|
|
|
"sourceType": "module"
|
|
|
},
|
|
|
"plugins": [
|
|
|
"react",
|
|
|
"react-hooks"
|
|
|
],
|
|
|
"rules": {
|
|
|
// no-var
|
|
|
'no-var': 'error',
|
|
|
// 要求或禁止 var 声明中的初始化
|
|
|
'init-declarations': 2,
|
|
|
// 强制使用单引号
|
|
|
'quotes': ['error', 'single'],
|
|
|
// 要求或禁止使用分号而不是 ASI
|
|
|
'semi': ['error', 'never'],
|
|
|
// 禁止不必要的分号
|
|
|
'no-extra-semi': 'error',
|
|
|
// 强制使用一致的换行风格
|
|
|
'linebreak-style': ['error', 'unix'],
|
|
|
// 空格4个
|
|
|
'indent': ['error', 4, {'SwitchCase': 1}],
|
|
|
// 指定数组的元素之间要以空格隔开(,后面), never参数:[ 之前和 ] 之后不能带空格,always参数:[ 之前和 ] 之后必须带空格
|
|
|
'array-bracket-spacing': [2, 'never'],
|
|
|
// 在块级作用域外访问块内定义的变量是否报错提示
|
|
|
'block-scoped-var': 0,
|
|
|
// if while function 后面的{必须与if在同一行,java风格。
|
|
|
'brace-style': [2, '1tbs', {'allowSingleLine': true}],
|
|
|
// 双峰驼命名格式
|
|
|
'camelcase': 2,
|
|
|
// 数组和对象键值对最后一个逗号, never参数:不能带末尾的逗号, always参数:必须带末尾的逗号,
|
|
|
'comma-dangle': [2, 'never'],
|
|
|
// 控制逗号前后的空格
|
|
|
'comma-spacing': [2, {'before': false, 'after': true}],
|
|
|
// 控制逗号在行尾出现还是在行首出现
|
|
|
'comma-style': [2, 'last'],
|
|
|
// 圈复杂度
|
|
|
'complexity': [2, 9],
|
|
|
// 以方括号取对象属性时,[ 后面和 ] 前面是否需要空格, 可选参数 never, always
|
|
|
'computed-property-spacing': [2, 'never'],
|
|
|
// TODO 关闭 强制方法必须返回值,TypeScript强类型,不配置
|
|
|
// 'consistent-return': 0
|
|
|
// react-hooks
|
|
|
"react-hooks/rules-of-hooks": "error",
|
|
|
"react-hooks/exhaustive-deps": "warn"
|
|
|
}
|
|
|
}; |