eslint配置属性

509 阅读4分钟
/**
* Eslint 检查规则(A)
* "off" 或者 0 -- 关闭规则
* "warn" 或者 1 -- 将规则打开为警告(不影响退出代码)
* "error" 或者 2 -- 将规则打开为错误(触发时退出代码为 1)
*/
'no-new': 0, // 不允许新建
'array-callback-return': 'error', // 强制数组方法的回调函数中有return
'no-undef': 0, // 表示关闭该功能
"no-undef": 'off', // 表示关闭该功能
'no-undef': 1, // 不能有未定义的变量
'no-undef': 2, // 不能有未定义的变量
'no-undef-init': 2, // 变量初始化时不能直接给它赋值为undefined
'no-undefined': 2, // 不能使用undefined
'camelcase': [0, {
    'properties': 'always'
}], // 关闭驼峰命名规则校验(变量命名时,名称之间不允许下划线,常量(全部大写)除外)
'camelcase': 2,// 强制驼峰法命名
'comma-dangle': [2, 'only-multiline'], // 禁止使用拖尾逗号
'comma-spacing': [2, {
    'before': false,
    'after': true
}], // 变量声明,数组文字,对象文字,函数参数和序列中的逗号前后加上一致的间距
'comma-style': [2, 'last'], // 使用标准逗号样式,逗号位于当前行的末尾。在数组元素,对象属性或变量声明在同一行之后和同一行需要逗号
'eqeqeq': ['error', 'always', { null: 'ignore' }], // 要求使用 === 和 !==
'no-extra-semi': 2, // 禁止多余的冒号
'indent': [2, 2, {
    'SwitchCase': 1 // case 针对 switch 语句使用 2 个空格缩进
}], // 使用两个空格进行缩进
'key-spacing': [2, {
    'beforeColon': false,
    'afterColon': true
}], // 对象字面量属性中强制在冒号后放置空格,冒号前不允许空格
'keyword-spacing': [2, {
    'before': true,
    'after': true
}], // 关键字前后至少有一个空格
'lines-around-comment': ['error'], // 行前/行后备注
'new-cap': [2, {
    'newIsCap': true,// new 方式调用的函数需以大写开头
    'capIsNew': false // 允许直接调用大写开头的函数,无需使用 new
}],  // 构造函数名需以大写字母开头,以下内置标识符可免除此规则:Array、Boolean、 Date、Error、Function、Number、Object、RegExp、String、Symbol
'no-empty-function': 0, // 禁止出现空函数
'no-extra-bind': 2, // 禁止不必要的 .bind() 调用
'no-floating-decimal': 2, // 禁止数字字面量中使用前导和末尾小数点
'no-multi-spaces': 2, // 禁止在逻辑表达式,条件表达式,声明,数组元素,对象属性,序列和函数参数周围使用多个空格
'no-multiple-empty-lines': [2, {
    'max': 1
}], // 禁止多个连续空行,最大连续空行数为 1
'no-self-compare': 2,  // 禁止变量与自己进行比较操作
'no-callback-literal': 0, // 回调函数个数错误
'no-useless-concat': 'error', // 禁止没有必要的字符串拼接
'no-whitespace-before-property': 2, // 对象的属性在同一行上时禁止在属性前使用空格,当对象和属性位于单独的行上时,此规则允许使用空格,因为通常在较长的属性链中添加换行符
'quote-props': ['error', 'consistent'], // 对象字面量中的属性名是否强制双引号
'jsx-quotes': [2, 'prefer-single'], // 在 JSX 属性中强制使用单引号
'quotes': [2, 'single', {
    'avoidEscape': true,
    'allowTemplateLiterals': true
}], // 字符串尽可能使用单引号
'quotes': [2, 'single'], // 字符串尽可能使用单引号
'no-useless-escape': 0, // 关闭不必要的转义检测规则
'semi-spacing': 'error', // 强制分号之前和之后使用一致的空格
'semi-spacing': [2, {
    before: false,
    after: true
}], // 分号后强制使用空格,并在分号前禁止使用空格
'semi': [2, "always"], // 禁止使用分号结尾
'space-before-blocks': [2, 'always'], // 代码块前至少有一个空格
'space-before-function-paren': [2, 'never'], // 函数名称或 function 关键字与开头括号之间不允许有空格
'space-infix-ops': 2,  // 中缀运算符周围需有空格
'spaced-comment': [2, 'always', {
    'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ',']
}], // 注释//和/*后必须跟一个空格
'dot-notation': ['warn'], // 避免不必要的方括号
'no-eval': 1, // 禁止使用eval
'no-implied-eval': 2, // 禁止使用隐式eval
'prefer-const': 0, // 防止let强制转换成const
'generator-star-spacing': [2, {
    'before': true,
    'after': true
}], // 使用生成器时关键字 * 前后均须有空格
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, // 生产环境中禁止使用 debugger 调试器
module.exports = {
    root: true, // 持续查找(root)
    parserOptions: {
        parser: 'babel-eslint', // 解析器(parser)
        ecmaVersion: 2020, // ECMA版本
        sourceType: 'module'// 指定源代码存在的位置,script | module,默认为script
    },
    env: {
        browser: true,// 启用浏览器全局变量。
        node: true,// Node.js全局变量和Node.js范围。
        es6: true,// 启用ES6的功能。
    },
    extends: ['plugin:vue/recommended', 'eslint:recommended', 'plugin:vue/essential', 'standard'], // eslint:recommended:表示引入eslint的核心功能,并且报告一些常见的共同错误。
    plugins: ['vue'],
}