官方地址:http://eslint.org/,中文地址:http://eslint.cn/
EsLint幫助我們檢查Javascript編程時(shí)的語(yǔ)法錯(cuò)誤。比如:在Javascript應(yīng)用中,你很難找到你漏泄的變量或者方法。EsLint能夠幫助我們分析JS代碼,找到bug并確保一定程度的JS語(yǔ)法書寫的正確性。在多人開發(fā)維護(hù)上,有利于團(tuán)隊(duì)開發(fā)風(fēng)格保持一致,利于項(xiàng)目查看,維護(hù)。
EsLint提供以下幾種校驗(yàn):
1、語(yǔ)法錯(cuò)誤校驗(yàn);
2、不重要或丟失的標(biāo)點(diǎn)符號(hào),如分號(hào);
3、沒法運(yùn)行到的代碼塊;
4、未被使用的參數(shù)提醒;
5、漏掉的結(jié)束符,如};
6、確保樣式的統(tǒng)一規(guī)則,如sass或者less;
7、檢查變量的命名;
安裝
使用npm命令安裝
// 如果項(xiàng)目中沒有配置文件,通過(guò)npm init生成一個(gè)新的配置文件
npm init eslint -g
項(xiàng)目目錄下,運(yùn)行:eslint –init將會(huì)產(chǎn)生一個(gè).eslintrc的文件,文件內(nèi)容包含一些校驗(yàn)規(guī)則
//其中”semi”和”quotes”是規(guī)則名稱。
{
????"rules": {
????????"semi": ["error","always"],
????????"quotes": ["error","double"]
????}
}
自定義配置
配置自己的規(guī)則,你可以關(guān)掉所有ESLint默認(rèn)的驗(yàn)證,自行添加所確切需要的驗(yàn)證規(guī)則。為此EsLint提供了2個(gè)種方式進(jìn)行設(shè)置:
Configuration Comments: 在所要驗(yàn)證的文件中,直接使用Javascript注釋嵌套配置信息
Configuration Files: 使用JavaScript、JSON或YAML文件,比如.eslintrc文件,當(dāng)然你也可以在package.json文件里添加eslintConfig字段,ESLint都會(huì)自動(dòng)讀取驗(yàn)證。
parserOptions
EsLint通過(guò)parserOptions,允許指定校驗(yàn)的ecma的版本,及ecma的一些特性
{
????"parserOptions": {
????"ecmaVersion": 6,//指定ECMAScript支持的版本,6為ES6
????"sourceType":"module",//指定來(lái)源的類型,有兩種”script”或”module”
????"ecmaFeatures": {
????????????"jsx":true//啟動(dòng)JSX
????????},
????}
}
Parser
EsLint默認(rèn)使用esprima做腳本解析,當(dāng)然你也切換他,比如切換成babel-eslint解析
{
????"parser":"esprima"http://默認(rèn),可以設(shè)置成babel-eslint,支持jsx
}
Environments
Environment可以預(yù)設(shè)好的其他環(huán)境的全局變量,如brower、node環(huán)境變量、es6環(huán)境變量、mocha環(huán)境變量等
{
????"env": {
????????"browser":true,
????????"node":true
????}
}
//如果你想使用插件中的環(huán)境變量,你可以使用plugins指定,如下
{
????"plugins": ["example"],
????"env": {
????????"example/custom":true
????}
}
Globals
指定你所要使用的全局變量,true代表允許重寫、false代表不允許重寫
{
????"globals": {
????????"var1":true,
????????"var2":false
????}
}
Plugins
EsLint允許使用第三方插件
{
????"plugins": [
????????"react"
????]
}
Rules
在配置文件中可以設(shè)置一些規(guī)則。
規(guī)則的錯(cuò)誤等級(jí)有三種:
"off" 或者 0:關(guān)閉規(guī)則。
"warn" 或者 1:打開規(guī)則,并且作為一個(gè)警告(不影響exit code)。
"error" 或者 2:打開規(guī)則,并且作為一個(gè)錯(cuò)誤(exit code將會(huì)是1)。
"extends": "eslint:recommended"
Extends是EsLint默認(rèn)推薦的驗(yàn)證,你可以使用配置選擇哪些校驗(yàn)是你所需要的。
自定義規(guī)則,一般格式:”規(guī)則名稱”:error級(jí)別系數(shù)。
可以包括Strict模式、也可以是code的方式提醒,如符號(hào)等。還可以是第三方的校驗(yàn),如react。
默認(rèn)校驗(yàn)的地址:http://eslint.org/docs/rules/(英文),http://eslint.cn/docs/rules/(中文)
{
????"plugins": [
????????"react"
????],
????"rules": {
????????//Javascript code 默認(rèn)校驗(yàn)
????????"eqeqeq":"off",//off = 0
????????"curly":"error",//error = 2
????????"quotes": ["warn","double"],//warn = 1
????????//使用第三方插件的校驗(yàn)規(guī)則
????????"react/jsx-quotes": 0
????????}
}