ESLint最初是由Nicholas C. Zakas 于2013年6月创建的开源项目。它的目标是提供一个插件化的javascript代码检测工具。对比于jshint显著的特点就是支持插件拓展还有就是支持jsx语法(jshint并不支持jsx,react开发老报错也是很头疼ㄟ( ▔, ▔ )ㄏ )。
命令行
具体的可以参考这里 传送门 或者 eslint -h, 这里给出几个常用的。
安装
npm i -g eslint
生成配置
eslint --init
//回答问题后生成eslint配置。
运行eslint
eslint [options] [file|dir|glob]*
//eslint file1.js file2.js
//eslint lib/**
//eslint "lib/**" glob模式要用引号
eslint配置
配置有这几种方式:
直接在代码文件中定义,使用 JavaScript 注释把配置信息直接嵌入到一个文件。
使用 .eslintrc (json或者YAML)或者 .eslintrc.yml(YAML)或者 .eslintrc.js(javascript)或者 .eslintrc.json (JSON);
在 package.json 中添加 eslintConfig 字段;
和jshint一样有个忽略检测文件的配置.eslintignore。
eslintrc执行时会从检测的文件一层层往上找配置文件,但是离检测文件最近的文件优先级最高,会覆盖父级的配置。所以一般会在根目录的配置中加一个:
# YAML
root: true
ESLint 一旦发现配置文件中有 "root": true,它就会停止在父级目录中寻找。
如果项目内没有配置文件,会退回到系统 ~/.eslintrc 中自定义的默认配置。
有很多信息可以被配置:
Environments - 指定脚本的运行环境。每种环境都有一组特定的预定义全局变量。
Globals - 脚本在执行期间访问的额外的全局变量。
Rules - 启用的规则及各自的错误级别。
一个简单的例子(.eslintrc.yml):
# YAML
env:
browser: true
parserOptions:
ecmaVersion: 6
ecmaFeatures:
jsx: true
globals :
angular: tr