1 lint 简介
lint 最早用于 c 语言,用来检查代码。目前作为通用术语,用来表示代码检查工具。
JS 经历的主流 lint 工具如下:
1、JSLint
2、JSHint
3、Eslint
2 ESlint 配置
2.1 初始化项目
1 | //在新建好的文件夹下,执行如下命令,得到 package.json |
2.2 安装&初始化 ESLint
1 | //方式一:全局安装 & 初始化 |
根据项目实际情况选择,完成后可得到规则配置文件 .eslintrc.js 或 .eslintrc.ymal 或 eslintrc.json,下面是对 .eslintrc.js 文件的内容解析:
1 | module.exports = { |
2.3 配置ESLint规则
2.3.1 配置方式
主要有两种方式类配置ESLint:
- 注释
- 配置文件
注释
通过在源码文件中添加注释来配置lint规则,此方法通常用于临时临时禁止某些严格的lint警告
1 | //放在文件顶部整个文件都不会有警告了 |
配置文件
配置文件类型
文件类型及优先级排序如下:
.eslintrc.js
.eslintrc.yaml
.eslintrc.yml
.eslintrc.json
.eslintrc
(弃用)package.json
//在package.json
里创建eslintConfig
属性,在此属性中进行配置
配置文件使用方式
配置文件有两种使用方式,无论哪种方式配置文件都会覆盖默认设置。
.eslintrc.* 和 package.json
使用
.eslintrc.*
和package.json
文件,eslint 将自动从被检测目录开始寻找(可通过配置root:true
来阻止 eslint),直到系统根目录,当想对项目的不同部分分别进行配置时,这种方式很有用。此方式需要注意:
.eslintrc.*
文件可以进行层叠配置。eslint 会将被检测文件目录层次结构中的 eslint 配置文件规则进行组合,离被检测文件最近的规则优先级最高。如检测下面代码结构中的 test.js 文件时,
your-project/tests/.eslintrc
文件优先级要高于your-project/.eslintrc
文件。1
2
3
4
5
6
7your-project
├── .eslintrc
├── lib
│ └── source.js
└─┬ tests
├── .eslintrc
└── test.js
- 同一目录下
.eslintrc
和package.json
同时存在时,.eslintrc
优先级高会被使用,package.json
文件将不会被使用。
命令行参数 -c
使用
-c
参数,来传递配置文件。想要 eslint 忽略任何.eslintrc.*
文件,需使用--no-eslintrc
的同时,加上-c
标记。1
eslint -c myconfig.json myfiletotest.js
配置规则优先级总结
优先级从高到底:
- 行内配置
/*eslint-disable*/
和/*eslint-enable*/
- ``/global/`
/*eslint*/
- ``/eslint-env/`
- 命令行选项(或 CLIEngine 等价物):
--global
- ``–rule`
--env
-c
、--config
- 项目级配置:
- 与要检测的文件在同一目录下的
.eslintrc.*
或package.json
文件 - 继续在父级目录寻找
.eslintrc
或package.json
文件,直到根目录(包括根目录)或直到发现一个包含"root": true
的配置文件。
- 与要检测的文件在同一目录下的
- 如果不是上面类型中的任何一种情况,则退回到
~/.eslintrc
中自定义的默认配置。
- 行内配置
具体规则说明:
2.4 配置忽略文件
- .eslintignore
- –ignore-path
- package.json
.eslintignore
在项目根目录,创建.eslintignore
文件,在文件中指定需要忽略的文件和目录。每一行都是一个 glob 模式表明哪些路径应该忽略检测。
Globs 匹配使用 node-ignore,所以大量可用的特性有:
- 注释以
#
开头 - 路径是相对于
.eslintignore
的位置或当前工作目录。这也会影响通过--ignore-pattern
传递的路径。 - 忽略模式同
.gitignore
规范 - 以
!
开头的行是否定模式,它将会重新包含一个之前被忽略的模式。
除了 .eslintignore
文件中的模式,eslint总是忽略 /node_modules/*
和 /bower_components/*
中的文件。
–ignore-path
在命令行使用 --ignore-path
选项指定忽略项所在配置文件。指定 --ignore-path
意味着任何现有的 .eslintignore
文件将不被使用。
1 | eslint --ignore-path .jshintignore file.js |
package.json
如果没有发现 .eslintignore
文件,也没有指定替代文件,ESLint 将在 package.json 文件中查找 eslintIgnore
键。
1 | { |
2.5 命令行说明
命令行选项可以通过.\node_modules\.bin\eslint -h
查看,得到如下信息:
1 | eslint [options] file.js [file.js] [dir] |
参考链接: