module.exports={
// 表示是ESLint的最顶层配置文件,不会再向上查找ESLint的配置
root: true,
// 禁用内联注释,不能再代码文件中使用ESLint的注释
noInlineConfig: true,
env: {
node: true,
},
extends: [
'plugin:vue/vue3-essential',
'eslint:recommended',
],
parserOptions: {
parser: '@babel/eslint-parser',
},
rules: {
'no-console': 'warn',
// 使用类型安全的相等运算符 === 和 !=== 而不是它们的常规运算符 == 和 != 被认为是好的做法。
'eqeqeq': [ 'error', 'smart' ],
// 字符串必须使用单引号
'quotes': [ 'error', 'single' ],
// 独占一行语句块不能有分号
'semi': [ 'error', 'never' ],
// 代码中不能存在var关键字
'no-var': 'error',
// 单行语句块不能有大括号
'curly': [ 'error', 'multi-or-nest', 'consistent' ],
// 要求在所有对象字面属性名称周围不加引号
'quote-props': [ 'error', 'consistent-as-needed' ],
// 使数组括号内的间距一致。
'array-bracket-spacing': [ 'error', 'always', { objectsInArrays: true, arraysInArrays: true } ],
// 书写代码时,大括号的风格
'brace-style': [ 'error', 'stroustrup', { allowSingleLine: true } ],
// 使开放区块标记和同一行的下一个标记之间的间距一致 花括号前后都有空格
'block-spacing': [ 'error', 'always' ],
// 使变量声明、数组字面、对象字面、函数参数和序列中逗号前后的间距一致。
'comma-spacing': [ 'error', { before: false, after: true } ],
// 这条规则在数组字面、对象字面和变量声明中执行了一致的逗号风格。
'comma-style': [ 'error', 'last' ],
// 这条规则强制要求在对象和数组字面上统一使用尾随逗号。
'comma-dangle': [ 'error', 'always-multiline' ],
// 这条规则不允许在以下测试条件中使用常量表达式:
'no-constant-condition': 'warn',
// 使用此规则禁用 if、for、while 和 do...while 测试条件中的模糊赋值运算符。
'no-cond-assign': [ 'error', 'always' ],
// 这条规则要求或不允许在函数名和调用它的开头小括号之间有空格。
'func-call-spacing': [ 'off', 'never' ],
// 这条规则使对象字面属性中的键和值之间的间距一致。在长行的情况下,在允许空白的地方添加一个新行是可以接受的。
'key-spacing': [ 'error', { beforeColon: false, afterColon: true } ],
// 这条规则强制执行一致的缩进风格。默认风格是 4 spaces。
'indent': [ 'error', 2, { SwitchCase: 1, VariableDeclarator: 1, outerIIFEBody: 1 } ],
// 'no-restricted-syntax': [
// 'error',
// 'DebuggerStatement',
// 'LabeledStatement',
// 'WithStatement',
// ],
// 这条规则使对象字面、解构赋值和导入/导出指定器的大括号内的间距一致。
'object-curly-spacing': [ 'error', 'always' ],
// 'no-return-await': 'off',
// 这条规则的目的是在函数括号前执行一致的间距,因此,只要空白处不符合指定的偏好,就会发出警告。
'space-before-function-paren': [
'error',
{
anonymous: 'always',
named: 'never',
asyncArrow: 'always',
},
],
//
// // es6
// 这条规则旨在标记那些使用 let 关键字声明的变量,但在初始赋值后从未重新赋值。
'prefer-const': [
'error',
{
destructuring: 'all',
ignoreReadBeforeAssign: true,
},
],
// 这条规则定位了用作回调或函数参数的函数表达式。对于任何可以用箭头函数替换而不改变结果的,将产生一个错误。
'prefer-arrow-callback': [
'error',
{
allowNamedFunctions: false,
allowUnboundThis: true,
},
],
// 该规则强制使用速记语法。这适用于 适用于在对象字面中定义的所有方法(包括生成器)和任何属性,其中的键名与分配的变量名相匹配。
'object-shorthand': [
'error',
'always',
{
ignoreConstructors: false,
avoidQuotes: true,
},
],
// 这条规则不允许调用 Math.pow,建议使用 ** 运算符代替。
'prefer-exponentiation-operator': 'error',
// 这条规则的目的是标记 arguments 变量的使用。
'prefer-rest-params': 'error',
// 这条规则的目的是在可以使用传播语法的情况下,标记出 Function.prototype.apply() 的用法。
'prefer-spread': 'error',
// 这条规则的目的是标明使用 + 运算符连接的字符串。
'prefer-template': 'error',
// 这条规则的目的是保持模板字词内部间距的一致性。
'template-curly-spacing': [ 'error', 'never' ],
// 这条规则在箭头函数参数周围强制使用小括号,而不考虑数位。比如:
'arrow-parens': [ 'error', 'as-needed', { requireForBlockBody: true } ],
// 该规则旨在强制执行生成器函数的 * 周围的间距。
'generator-star-spacing': [ 'error' ],
// 这条规则将强制执行注释 // 或 /* 开始后的间距的一致性。它还为各种文档风格提供了一些例外情况。
'spaced-comment': [ 'error', 'always', {
line: {
markers: [ '/' ],
exceptions: [ '/', '#' ],
},
block: {
markers: [ '!' ],
exceptions: [ '*' ],
balanced: true,
},
} ],
// // best-practice
// 本规则强制要求在数组方法的回调中使用 return 语句。 此外,它也可以通过使用 checkForEach 选项来强制 forEach 数组方法回调没有返回值。
'array-callback-return': 'error',
// 这条规则的目的是减少变量在其绑定上下文之外的使用,并模仿其他语言的传统块范围。这是为了帮助语言的新手们避免因变量提升而产生的地狱。
'block-scoped-var': 'error',
// 这条规则要求 return 语句总是或从不指定数值。这条规则忽略了名称以大写字母开头的函数定义,因为构造函数(当用 new 运算符调用时)如果不明确返回另一个对象,就会隐式返回实例化的对象。
'consistent-return': 'off',
// 这条规则旨在通过限制程序中允许的循环复杂性来减少代码的复杂性。因此,当循环复杂度超过配置的阈值(默认为 20)时,它将发出警告。
'complexity': [ 'off', 11 ],
// 标记使用alert
'no-alert': 'warn',
// 这条规则的目的是防止访问未初始化的词性绑定,以及访问跨例句的悬挂函数。
'no-case-declarations': 'error',
// 这条规则的目的是不允许在逻辑表达式、条件表达式、声明、数组元素、对象属性、序列和函数参数周围有多个空格。
'no-multi-spaces': 'error',
// 这条规则的目的是防止使用多行字符串。
'no-multi-str': 'error',
// 使用此规则禁用 with 语句。如果 ESLint 以严格模式解析代码,解析器(而不是本规则)会报告错误。
'no-with': 'error',
// 这条规则的目的是消除无效运算符的使用。
'no-void': 'error',
// 这条规则标志着可以安全地删除转义而不改变行为。
'no-useless-escape': 'off',
// 这条规则的目的是将所有的变量声明保持在前面的一系列语句中。 允许多个声明有助于促进可维护性,因此是允许的
'vars-on-top': 'error',
// 这条规则警告那些没有 await 表达式的异步函数。
'require-await': 'off',
// 这条规则的目的是消除 return 语句中的赋值。因此,只要发现有赋值作为 return 的一部分,它就会发出警告。
'no-return-assign': 'warn',
// 这条规则为运算符执行了一致的换行风格。
'operator-linebreak': [ 'error', 'before' ],
// 这条规则执行了每行允许的最大语句数。
'max-statements-per-line': [ 'error', { max: 1 } ],
// // vue
// 任何对未声明变量的引用都会导致警告
'no-undef': 'off',
'vue/max-attributes-per-line': 'off',
'vue/no-v-html': 'off',
'vue/require-prop-types': 'off',
'vue/require-default-prop': 'off',
'vue/multi-word-component-names': 'off',
'vue/prefer-import-from-vue': 'off',
},
}
eslint配置
最新推荐文章于 2024-09-18 11:12:36 发布