一、关于配置文件,优先级从上到下:
- 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", 4, { "SwitchCase": 1 }], }
3、"quotes":强制使用一致的反勾号、双引号或单引号
{ // 强制使用单引号(double双引号,backtick反勾号) "quotes": ["error", "single"], }
4、semi:强制使用分号
{ "semi": ["error", "always"], }
5、no-console:禁用console
6、no-empty:禁止空语句块
7、eqeqeq:要求使用===和!==
六、注意
1、在使用三点操作符时,要注意版本的区别,要么指定ecmaVersion为2018,要么不指定,否则,解析不通过。