vue/cli构建的项目eslint配置

1.开始和关闭eslint

// vue.config.js
module.exports = {
// lintOnSave用于控制是否启用eslint
lintOnSave: process.env.NODE_ENV !== 'production'
  devServer: {
    overlay: {
      warnings: true,
      errors: true
    }
  }
}

2.eslint配置文件

  • eslintrc.js
  • eslintignore
  • editorconfig
  • package.json文件里eslintConfig 字段

3.手动配置自己的eslint

在项目根目录下创建.eslint

.eslintrc.js
module.exports = {
    "env": {
        "browser": true,
        "es6": true,
        "jquery": true
    },
    "extends": [
        "eslint:recommended",
        "plugin:vue/essential"
    ],
    "globals": {
        "Atomics": "readonly",
        "SharedArrayBuffer": "readonly"
    },
    "parserOptions": {
        "ecmaVersion": 2018
    },
    "plugins": [
        "vue"
    ],
    "rules": {
        "semi": ["error", "always"],
        "quotes": ["error", "double"],
        "indent": ["error", 2],
        "semi": 0,
        //禁止拖尾逗号
        "comma-style": ["error", "last", { "exceptions": { "ArrayExpression": true, "ObjectExpression": true } }],
        //逗号之后需要空格
        "comma-spacing": ["error", { "before": false, "after": true }],
        //对象中关键字冒号前后空格
        "key-spacing": ["error",{
            "multiLine": {
              "beforeColon": false,
              "afterColon": true
            }
          }],
        // 禁止条件表达式中出现赋值操作符
        "no-cond-assign": 2,
        // always-multiline:多行模式必须带逗号,单行模式不能带逗号
        "comma-dangle": [2, "never"],
        "no-debugger": 1,
        // 禁止 function 定义中出现重名参数
        "no-dupe-args": 2,
        // 禁止对象字面量中出现重复的 key
        "no-dupe-keys": 2,
        // 禁止重复的 case 标签
        "no-duplicate-case": 2,
        // 禁止空语句块
        "no-empty": 2,
        // 禁止对 catch 子句的参数重新赋值
        "no-ex-assign": 2,
        // 禁止不必要的布尔转换
        "no-extra-boolean-cast": 2,
        //  禁止不必要的括号 //(a * b) + c;//报错
        "no-extra-parens": 0,
        // 禁止不必要的分号
        "no-extra-semi": 2,
        // 禁止对 function 声明重新赋值
        "no-func-assign": 2,
        //  禁止在嵌套的块中出现 function 或 var 声明
        "no-inner-declarations": [2, "both"],
        //   禁止把全局对象 (Math 和 JSON) 作为函数调用  错误:var math = Math();
        "no-obj-calls": 2,
        // 禁止直接使用 Object.prototypes 的内置属性
        "no-prototype-builtins":0,
        // 禁止正则表达式字面量中出现多个空格
        "no-regex-spaces": 2,
        // 禁用稀疏数组
        "no-sparse-arrays": 2,
        // 要求使用 isNaN() 检查 NaN
        "use-isnan": 2,
        // 禁用 alert、confirm 和 prompt
        "no-alert": 1,
        // 禁止在没有类型检查操作符的情况下与 null 进行比较
        "no-eq-null": 1,
        // 禁用 eval()
        "no-eval": 2,
        // 禁止 case 语句落空
        "no-fallthrough": 2,
        // 禁止在全局范围内使用 var 和命名的 function 声明
        "no-implicit-globals":1,
        // 禁止 this 关键字出现在类和类对象之外
        "no-invalid-this":1,
        // 禁止修改 const 声明的变量
        "no-const-assign":2,
        // 要求使用模板字面量而非字符串连接
        "prefer-template":1,
        //强制要求花括号属性之间换行一致性
        "object-curly-newline": ["error", { "minProperties": 1 }],
        // 要求使用箭头函数作为回调
        "prefer-arrow-callback":1,
        // 要求使用 const 声明那些声明后不再被修改的变量
        "prefer-const": 1
    }
};

参考文献

eslint中文文档

你可能感兴趣的:(vue/cli构建的项目eslint配置)