共计 1978 个字符,预计需要花费 5 分钟才能阅读完成。
规则知识点
配置文件读取优先级顺序:
eslintrc.js
eslintrc.yaml
eslintrc.yml
eslintrc.json
eslintrc
package.json
配置 rules 数值规则:"off" or 0
– turn the rule off"warn" or 1
– turn the rule on as a warning (doesn’t affect exit code)"error" or 2
– turn the rule on as an error (exit code is 1 when triggered)
字段详解
{
// 别人可以直接使用你配置好的 ESLint, ESLint 一旦发现配置文件中有 "root": true,它就会停止在父级目录中寻找。"root": true,
// 指定解析器
"parser": "babel-eslint",
// 指定解析器选项,EsLint 通过 parserOptions,允许指定校验的 ecma 的版本,及 ecma 的一些特性
"parserOptions": {
"ecmaVersion": 2019, // 指定 ECMAScript 支持的版本,6 为 ES6
"sourceType": "module", // 指定来源的类型,有两种”script”或”module”"ecmaFeatures": {"jsx": true // 启动 JSX}
},
// 加入第三方插件,三方插件同样提供 rules、extends 等配置
"plugins": ["vue"],
// 继承别的规则配置文件
"extends": [
"eslint:recommended",
"plugin:jest/recommended",
"plugin:vue/recommended",
"prettier"
],
// 指定将在所有插件规则之间共享的设置
"settings": { },
// 指定规则
"rules": {
"no-new": 0, // 是否允许 new 构造函数不赋值给变量
"no-shadow": 0, // 是否允许来自被屏蔽的变量的变量声明(比如一个被全局定义过的变量 是否允许在局部的 function 里再次被定义)"camelcase": 1, // 是否强制使用驼峰拼写法命名规定
"no-bitwise": 0, // 按位操作的规则
"func-names": 0, // 定义方法的规则
"no-console": 0, // 是否允许使用 console
"no-plusplus": 0, // 是否允许 ++ -- 这样的操作写法
"arrow-parens": 2, // 方法箭头左侧属性是否加 ()
"comma-dangle": 0, // 结尾处 k - v 值后面是否允许逗号
"default-case": 0, // switch-case 语句是否强制加 default case
"prefer-template": 0, // 是否强制使用 `` 这样的 template 字面量符号代替拼接字符串
"consistent-return": 0, // 是否强制 return 指定值
"no-param-reassign": 0, // 是否禁止参数变量再分配值
"no-nested-ternary": 0, // 是否禁止嵌套三元表达式
"operator-linebreak": 0, // 是否强制段行风格
"object-curly-newline": 0, // 是否强制花括号内段行风格
"no-underscore-dangle": 1, // 是否强制下划线变量命名风格
"no-unused-expressions": 0, // 是否禁止不用的表达式存在
"no-restricted-globals": 0, // 是否禁用特定的全局变量 (可自定义)
"function-paren-newline": 0, // 是否强制方法的参数换行
"class-methods-use-this": 0, // 是否强制 class 函数体内出现 this
"implicit-arrow-linebreak": 0, // 是否不允许方法中 => 右边换行
"space-before-function-paren": 0, // 是否强制方法圆括号左边空格
"max-len": ["error", {"code": 150}], // 是否强制代码一行内的字符上限
"prefer-destructuring": 0, // 是否强制使用对象解构
},
// env:你的脚本将要运行在什么环境中
// Environment 可以预设好的其他环境的全局变量,如 brower、node 环境变量、es6 环境变量、mocha 环境变量等
"env": {
"browser": true,
"commonjs": true,
"es6": true
},
// 指定你所要使用的全局变量,true 代表允许重写、false 代表不允许重写
"globals": {
"window": false,
"document": false,
"navigator": false
}
},
正文完