(一)配置
常用的配置Eslint的选项1.配置Eslint:有两种主要的方式来配置Eslint:
①Configuration Comments ---使用js注释把配置信息直接嵌入到一个代码源文件中
②Configuration File---可以配置一个独立的.eslintrc.*,或者直接在package.json文件里的 eslintConfig字段指定配置,Eslint会查找和自动读取它们;再者,你可以在命令行运行时指 定一个任意的配置文件
{ "root": true, //一旦发现配置文件中有这个属性,表示会停止在父级目录中寻找 "env": { browser: true, node: true }, "parserOptions": { parser: 'babel-eslint' }, "extends": ['plugin:vue/recommended'], "plugins": ['vue'], "rules": { 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off' }}
2.指定解析器选项
解析器选项可以在.eslintrc.*文件中的parserOptions字段中配置,比如:
{
"parserOptions": {
"ecmaVersion": 6, //指定你要使用的ECMAScript版本
"sourceType": "module", //设置为"script"(默认)或"module"(如果你的代码是ECMAScript模块)
"ecmaFeatures": { //是个对象,指定额外的语言特性
"jsx": true //启用JSX
}
}
}3.指定解析器
Eslint默认使用Espree作为其解析器,可以在配置文件中的parser中重新指定一个解析器:
注意:在使用了自定义解析器parser后,配置属性parserOptions仍然是必须的。解析器会被传入parserOptions,但是不一定会使用它们来决定功能特性的开关。
{
"parser": "babel-eslint", // 一个对Babel解析器的包装,使其能够与Eslint兼容
}4.指定环境
要在配置文件里指定环境,使用env关键字指定你想开启的环境,并设置它们为true。以下展示了启用了browser和Node.js的环境:
{
"env": {
"browser": true,
"node": true
}
}5.配置插件
Eslint支持第三方插件,在使用插件之前,你必须使用npm安装它。在配置文件里配置插件的时候,你可以在plugins关键字来存放插件名字的列表,插件名称可以省略eslint-plugin-前缀
{
"plugins": [
"vue", //需要先安装这个插件npm i eslint-plugin-vue
"eslint-plugin-plugin2"
]
}6.配置规则
Eslint附带大量的规则,你可以使用注释或者配置文件修改你项目中使用的规则。要改变一个规则设置,你必须将规则ID设置为下列值之一:
注意:(值数组的第一项总是规则的严重程度【数字或字符串】)
- "off"或0 ----关闭规则
- "warn"或1 ----开启规则,使用警告级别的错误:warn(不会导致程序退出)
- "error"或2 ----开启规则,使用错误级别的错误:error(当被触发的时候,程序会退出)
{ "rules": { "eqeqeq": "off", "curly": "error", "quotes": ["error", "double"] } }
7.带有内联主释的禁用规则
(二)命令行
(三)Rules
Eslint的所有规则:cn.eslint.org/docs/rules/
所有的规则默认都是禁用的。在配置文件中,使用 "extends": "eslint:recommended" 来启用推荐的规则,报告一些常见的问题,这些常用的规则可以在文档中自行查看。
.eslintrc.js文件中
module.exports={
extends: "eslint:recommended" //开启一些推荐的规则
//extends的属性值:可以是字符串,也可以是字符串数组
}命令行添加的--fix选项用来自动修复规则所报告的问题(目前,大部分是对空白的修复),
待定在使用Eslint的时候,很多不明白的规则可以在以上进行查找,其中主要包括:
- 关于js代码逻辑
- 关于最佳实践
- 关于严格模式
- 关于变量声明
- 关于Node.js或在浏览器中使用ComminJS
- 关于代码风格
- 关于ES6
- 关于舍弃或者更改的