通过文件配置ESLint
简介
ESLint 是一个代码书写规范检查工具,通过很多规则检查来规范代码的书写风格,也可以找出一些错误。ESLint 文档里列出了规则说明,规则详细说明里也有示例。上述网站里也有用户指南、中文版本。
有很多 ESLint 的 config 实践可能比直接用 ESLint 更适合自己,我用的就是 airbnb 的。
使用
项目里安装
npm install eslint
为了使用方便,在 package.json 里的 scripts
里添加
"lint": "./node_modules/.bin/eslint"
然后就可以在命令行里使用以下命令来对文件或文件夹进行 ESLint 检查了。
npm run lint 文件/文件夹
如果要用别的 config 实践的要按照可以看它们自己的安装说明进行额外的安装。
配置文件
在项目目录里添加 .eslintrc.*
文件,ESLint 会自动读取它。
文件格式:
- .eslintrc.json
- .eslintrc.js: javascript 格式的配置信息,通过
exports
一个对象来配置 - .eslintrc.yml
- .eslintrc.yaml
- .eslintrc: yml 或 json 格式
也可以在 package.json 里添加 eslintConfig 来写入配置信息。
配置信息
extends
继承已启用的规则配置,一般使用:
{
"extends": "eslint:recommended"
}
这里配置的规则是 ESLint 文档里打勾的规则。
我用的 eslint-config-airbnb 是:
{
"extends": "airbnb"
}
env
配置启用环境,要启用的环境写在这里,并设置为 true
,如:
{
"env": {
"browser": true,
"node": true
}
}
rule
在 extends 里指定了设定好要启用的规则,但是很多时候有部分不一样,在这里可以设置让 extends 里部分规则不启用。rule 的使用要谨慎。
像在 airbnb 里面启用了分号检查,即必须使用分号,而我不想使用分号,配置如下:
{
"extends": "airbnb",
"rule": {
"semi": “off"
}
}
这里的 semi
就是分号检查规则。
eslint 里很多规则记不住谁是谁的话,在用 eslint 检查后它告诉你违背了哪些规则,然后在文档里查这些规则就可以知道规则具体说明,然后就可以选择是否使用它。规则值:
- "off" 或 0 - 关闭规则
- "warn" 或 1 - 开启规则,使用警告级别的错误:warn (不会导致程序退出)
- "error" 或 2 - 开启规则,使用错误级别的错误:error (当被触发的时候,程序会退出)
plugins
第三方插件配置,使用前要 npm 安装它。
插件名称可以省略 eslint-plugin-
前缀。
{
"plugins": [
"plugin1",
"eslint-plugin-plugin2"
]
}
globals
很多默认开启规则的 config 都不允许使用全局变量,它们被认为是未定义的变量,由 no-undef 规则来发出警告。所以如果要使用全局变量的话,推荐做法是在配置文件里的 globals 里声明它(等于 true
允许变量被重写,false
不允许变量被重写):
{
"globals": {
"globalsVar1": true,
"globalsVar2": false
}
}
参考:
ESLint 中文