一、关于配置文件,优先级从上到下:
- eslintrc.js
- .eslintrc.yaml
- .eslintrc.yml
- .eslintrc.json
- .eslintrc
- package.json
在官方文档中,.eslintrc已经被弃用,推荐使用.eslintrc.js。
二、解析器:
官方默认解析器为espree,如需要指定解析器,则需要在配置parser选项,在官方推荐的解析器中与ESLint兼容的有:
- Esprima
- Babel-Eslint
- Typescript-eslint-parser
// 指定解析器
{
"parser": "babel-eslint"
}
三、extends属性
extends 顾名思义,继承,可以继承别的规则配置文件。
可共享的配置是一个npm包,extends属性值可以省略包名的前缀:eslint-config-。
- eslint:recommended,官方推荐的规则,例:"extends": "eslint:recommended"
- eslint-config-standard,一个流行的风格指南。
四、plugins属性
插件用来自定义规则,是一个npm包,在引入的时候,可以省略前缀:eslint-plugin-。
五、常用规则:
- 关闭规则:off 或 0
- 开启规则,警告:warn 或 1
- 开启规则,错误:error 或 2
1、"space-before-function-paren":强制在 function
的左括号之前使用一致的空格
{
// 统一设置,总是有空格
"space-before-function-paren": ["error", "always"],
// or
"space-before-function-paren": ["error", {
"anonymous": "never", // 匿名函数,禁止有空格
"named": "always", // 命名函数,必须有空格
"asyncArrow": "always" // 箭头函数,必须有空格
}],
}
2、"indent":强制使用一致的缩进
{
// 缩进,4个空格,switch case语句缩进级别
"indent": ["error", , { "SwitchCase": }],
}
3、"quotes":强制使用一致的反勾号、双引号或单引号
{
// 强制使用单引号(double双引号,backtick反勾号)
"quotes": ["error", "single"],
}
4、semi:强制使用分号
{
"semi": ["error", "always"],
}
5、no-console:禁用console
6、no-empty:禁止空语句块
7、eqeqeq:要求使用===和!==
六、注意
1、在使用三点操作符时,要注意版本的区别,要么指定ecmaVersion为2018,要么不指定,否则,解析不通过。