一、關於配置文件,優先級從上到下:
- 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,要么不指定,否則,解析不通過。