ESlint--代碼規(guī)范和錯(cuò)誤檢查

官方地址: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

????????}

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • ESLint 配置 ESlint 被設(shè)計(jì)為完全可配置的,這意味著你可以關(guān)閉每一個(gè)規(guī)則而只運(yùn)行基本語(yǔ)法驗(yàn)證,或混合和...
    靜默虛空閱讀 41,546評(píng)論 3 14
  • EsLint入門學(xué)習(xí)整理 這兩天因?yàn)楣疽螅蛯?duì)ESLint進(jìn)行了初步的了解,網(wǎng)上的內(nèi)容基本上都差不多,但是內(nèi)容...
    點(diǎn)柈閱讀 26,080評(píng)論 3 42
  • 兩個(gè)月之前在項(xiàng)目中就開始使用 Eslint ,當(dāng)時(shí)直接 copy 別人的 .eslintrc.js 文件,感覺好復(fù)...
    dkvirus閱讀 112,161評(píng)論 33 190
  • GitChat技術(shù)雜談 前言 本文較長(zhǎng),為了節(jié)省你的閱讀時(shí)間,在文前列寫作思路如下: 什么是 webpack,它要...
    蕭玄辭閱讀 12,715評(píng)論 7 110
  • ESLint最初是由Nicholas C. Zakas 于2013年6月創(chuàng)建的開源項(xiàng)目。它的目標(biāo)是提供一個(gè)插件化的...
    gavinDu閱讀 1,834評(píng)論 1 1