ESLint 配置
root: true,
env: {
node: true,
},
extends: ['eslint:recommended', 'plugin:vue/essential'], // 'eslint:recommended'
parserOptions: {
parser: 'babel-eslint',
},
rules 配置
{
indent: ['error', 4,
{
VariableDeclarator: 'first',
outerIIFEBody: 0,
MemberExpression: 1,
FunctionDeclaration: { parameters: 'first' },
FunctionExpression: { parameters: 'first' },
CallExpression: { arguments: 'first' },
ArrayExpression: 'first',
ObjectExpression: 'first',
ImportDeclaration: 'first',
flatTernaryExpressions: true,
},
],
'no-multi-spaces': 'error', // 禁止出现多个空格
semi: ['error', 'always'], // 语句后加分号
'semi-spacing': ['error', { before: false, after: true }], // 强制分号前后有空格
'semi-style': ['error', 'last'], // 强制分号出现在句子末尾
quotes: ['error', 'single'], // 使用单引号
'no-trailing-spaces': 'error', // 禁用行尾空白
'eol-last': 'error', // 要求在非空文件末尾至少存在一行空行
'no-multiple-empty-lines': ['error', { max: 2, maxBOF: 0, maxEOF: 0 }], // 强制最大连续空行数
'func-call-spacing': ['error', 'never'], // 禁止在函数名和开括号之间有空格
'space-before-function-paren': ['error', 'always'], // 强制在 function 的左括号之前使用一致的空格
'space-in-parens': ['error', 'never'], // 强制圆括号内没有空格
'array-bracket-spacing': ['error', 'never'], // 禁止在数组括号内出现空格
'comma-spacing': ['error', { before: false, after: true }], // 禁止在逗号前使用空格,要求在逗号后使用一个或多个空格
'array-bracket-newline': ['error', 'consistent'], // 对每个括号要求使用一致的换行符
'array-element-newline': ['error', 'consistent'], // 需要一致地使用数组元素之间的换行符
'block-spacing': 'error', // 强制在代码块中开括号前和闭括号后有空格
'brace-style': ['error', '1tbs', { allowSingleLine: true }], // 将大括号放在控制语句或声明语句同一行的位置
'comma-dangle': ['error', 'always-multiline'], // 当最后一个元素或属性与闭括号 ] 或 } 在 不同的行时,要求使用拖尾逗号;当在 同一行时,禁止使用拖尾逗号
'key-spacing': ['error', { beforeColon: false, afterColon: true }], // 禁止在对象字面量的键和冒号之间存在空格
'keyword-spacing': ['error', { before: true, after: true }], // 在关键字前后使用一致的空格
'linebreak-style': ['error', 'unix'], // 强制使用 Unix 换行符
'no-lonely-if': 'error', // 禁止 if 作为唯一的语句出现在 else 语句中
'no-negated-condition': 'error', // 禁用否定表达式
'no-unneeded-ternary': 'error', // 禁止可以表达为更简单结构的三元操作符
'no-whitespace-before-property': 'error', // 禁止属性前有空白
'object-curly-spacing': ['error', 'always'], // 要求花括号内有空格 (除了 {})
'space-before-blocks': 'error', // 在块之前使用一致的空格
'space-infix-ops': 'error', // 要求中缀操作符周围有空格
'space-unary-ops': ['error', { words: true, nonwords: false }], // 在一元操作符之前或之后存在空格
'spaced-comment': ['error', 'always'], // // 或 /* 必须跟随至少一个空白
'switch-colon-spacing': ['error', { after: true, before: false }], // 在 switch 的冒号左右有空格
'template-tag-spacing': ['error', 'always'], // 要求一个标记的函数和它的模板字面量之间有一个或多个空格
'wrap-regex': 'error', // 要求正则表达式被包裹起来
'require-await': 'error', // 禁止使用不带 await 表达式的 async 函数
'arrow-parens': ['error', 'as-needed'], // 箭头函数的参数可以省略括号的地方强制不使用括号
'arrow-spacing': 'error', // 要求箭头函数的箭头之前或之后有空格
'generator-star-spacing': ['error', 'both'], // 强制 generator 函数中 * 号周围有空格
'yield-star-spacing': ['error', 'both'], // 强制在 yield 表达式中 * 周围使用空格
'no-duplicate-imports': 'error', // 禁止重复导入
'prefer-const': 'error', // 建议使用 const
'rest-spread-spacing': ['error', 'never'], // 强制剩余和扩展运算符及其表达式之间有空格
}, ;