一、是什么
ESLint 是一个代码检查工具,主要用来检查语法,统一代码风格。
ESLint是个工具,需要安装它,并给它设置配置文件,自己会去找配置文件,然后根据配置文件知道该干什么。
ESLint 是完全插件化的。每一个规则都是一个插件并且你可以在运行时添加更多的规则。
二、配置Eslint
有以下几种配置方式:
- JavaScript :使用.eslintrc.js文件导出一个包含配置的对象【推荐】
- Y
AML:.eslintrc.yaml或者.eslintrc.yml JSON:.eslintrc.json,并且此文件允许使用JS形式的注释废弃的用法:.eslintrc,此文件可以是JSON或者YAML- package.json:在package.json文件中创建eslintConfig属性,所有的配置包含在此属性中。
ESLint 会查找和自动读取它们。
文件的优先级则是按照以上出现的顺序(.eslintrc.js > .eslintrc.yaml > .eslintrc.yml > .eslintrc.json > .eslintrc > package.json)。
可以被配置的信息主要分为3类:
- Environments:你的 javascript 脚步将要运行在什么环境(如:nodejs,browser,commonjs等)中。
- Globals:执行代码时脚步需要访问的额外全局变量。
当访问当前源文件内未定义的变量时,no-undef 规则将发出警告。如果你想在一个源文件里使用全局变量,推荐你在 ESLint 中定义这些全局变量,这样 ESLint 就不会发出警告了。
{
"globals": {
"var1": "writable", // 可编辑
"var2": "readonly" // 只读
}
}
- Rules:开启某些规则,也可以设置规则的等级。
三、使用
3.1 安装
- 局部安装 yarn add eslint -D 【推荐本地安装】
- 执行 一下指令,自动生成.eslintrc.* 文件
yarn run eslint --init
预设配置:不需理会,因为创建文件后还可以再设置: eslint配置规则
3 .eslintrc.js文件
module.exports = {
"env": {// 如brower、node环境变量、es6环境变量、mocha环境变量等
"browser": true,
"es6": true,
"node": true
},
"extends": [// 继承一套基础配置,帮你默认开启一些规则
"eslint:recommended",
"plugin:vue/essential"
],
"globals": {// 额外的全局变量
"Atomics": "readonly",
"SharedArrayBuffer": "readonly"
},
"parserOptions": {// 解析器选项
"ecmaVersion": 2018,
"sourceType": "module"
},
"plugins": [//eslint提供了有限的规则,插件的作用事引入别的包提供的规则,此插件引入的规则可以用于rules、env和extends等配置中。
"vue"
],
"rules": { // 开启,修改规则(no-console)和 发生错误时报告的等级 (error)
'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', // 生产环境不允许console
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', // 生产环境不允许console
'quotes': ['error', 'single'], // 错误级别和任何你想使用的选项,开启引号规则,当不是单引号时就报错。
'block-scoped-var': 0, // 在块级作用域外访问块内定义的变量是否报错提示
}
};
3.2 规则
规则错误等级
0或'off':关闭规则。
1或'warn':打开规则,并且作为一个警告(并不会导致检查不通过)。
2或'error':打开规则,并且作为一个错误 (退出码为1,检查不通过)。
除了规则本身的取值之外,还支持一些自定义配置,给规则传递一个数组即可,数组第一项是规则等级,第二项是自定义配置。
参数说明:
参数1:错误等级
参数2:你想要的选项
'quotes': ['error', 'single'], // 错误级别和任何你想使用的选项,开启引号规则,当不是单引号时就报错。
3.3 如何配置.eslintrc.js
Configuring Plugins:
作用:ESLint 是完全插件化的。每一个规则都是一个插件并且你可以在运行时添加更多的规则。
ESLint 支持使用第三方插件。在使用插件之前,你必须使用 npm 安装它。
启用一个插件去校验什么代码。
3.4 几个指令
eslint src/**/*.{ts,js,vue} 检测
eslint src/**/*.{ts,js,vue} --fix 自动修复
四、参考
解析AST:www.astexplorer.net/