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中文文档

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ESLint 配置 ESlint 被设计为完全可配置的,这意味着你可以关闭每一个规则而只运行基本语法验证,或混合和...
    静默虚空阅读 41,549评论 3 14
  • 一、JSLint JSHint ESLint 参考前端工具考 - ESLint 篇JS Linter 进化史 C ...
    合肥黑阅读 76,785评论 0 47
  • 使用ESLint对代码书写进行规范,可以有效的提高代码的质量,降低代码出错的机率,因此有必要将ESLint引入到项...
    勤劳的小叶阅读 4,450评论 0 3
  • 第六十八章故意碰瓷 “一个小美容店有什么了不起,还让她天香带姐妹过来帮衬,不知道妈妈吃错了什么药,怎么对这个表妹这...
    三月春雪阅读 453评论 6 8
  • 四月春扉,陌上百花妍妍,扯满怀柔情,妩媚了你牵挂的眼,填一厥相思,吟唱的是独守彼岸的遗憾,回味的却是一腔柔肠,字似...
    黄巧芸阅读 861评论 2 7