設置JSHint,不要讓工具成了絆腳石

JSHint是一個強大的javascript代碼檢測工具,不只能夠幫助咱們檢測到可能的代碼錯誤,也能幫助咱們有效的避免編碼的錯誤。javascript

JSHint自己是個命令行工具,它提供了靈活了的選項設置方式,不過若是你要使用那種毫無節操的內置JSHint的IDE(例如IntellJ)的話,就只能選擇一些有限的選項,而後終日忍受那滿屏幕都是紅黃錯誤警告了。JSHint的選項大致能夠分三種:java

基於文件夾的設置方式

JSHint默認使用用戶home目錄下的.jshintrc文件(json格式)做爲配置文件,例如個人文件是這樣的:node

{
  "sub":true,
  "laxbreak":true,
  "laxcomma":true,
  "regexp":true,
  "asi": true,
  "browser": true,
  "loopfunc":true,
  "expr":true,
  "node": true,
  "es5": true,
  "esnext": true,
  "bitwise": true,
  "curly": true,
  "immed": true,
  "latedef": false,
  "expr": true,
  "eqeqeq": false,
  "eqnull": false,
  "newcap": true,
  "noarg": true,
  "undef": true,
  "proto": true,
  "strict": false,
  "smarttabs": true
}

具體的含義請參考文檔。你也能夠在你的項目目錄下添加一個.jshintrc文件,JSHint會在檢測文件時從文件所在目錄往上找,直到找到jshintrc文件爲止。json

基於文件的設置方式

對於須要對單個文件進行特定設置的需求,咱們能夠在文件最上方使用註釋行來設定JSHint,例如:curl

/* jshint undef: true, unused: true */
/* global MY_GLOBAL */

某些警告是沒法經過錯誤來進行屏蔽的,這時候你首先須要知道你要屏蔽錯誤的錯誤代碼,經過添加--verbose參數來得到:編輯器

$ jshint --verbose myfile.js
myfile.js: line 6, col 3, Unnecessary directive "use strict". (W034)

若是須要屏蔽這個錯誤,可在文件中加入:函數

/* jshint -W034 */

基於函數的設定方式

相似基於文件的設定,只要把相應的註釋行移到函數內就好了,例如:工具

// From another file
function b() {
  "use strict";
  /* ... */
}

hacker的方式

上面說的方式官方的文檔都有更加詳細的說明,可若是你老是想禁用掉特定的警告該怎麼辦呢?比方說對於如下代碼:oop

if (err) return next(err);

JSHint會警告Expected '{' and instead saw 'return'.,由於我(node社區不少人也是)不喜歡在單行的返回代碼先後添加大括號,可是我也不想老是在文件最上面添加註釋添加一塊專門的註釋來禁用它。一種可行的辦法是修改編輯器的代碼檢測插件,不過難度有點高,另外一種方法就是修改JSHint 的代碼,咱們只須要對一個reporter文件稍作修改便可。打開文件jshint/src/reporters/default.js,在var error = result.error;下面加入兩行代碼:編碼

var code = error.code;
if (code === 'W116') return;

大功告成,保存之後再用JSHint就再也看不到那樣的警告了。(固然,若是你的JSHint使用別的reporter那就另當別論了)

相信經過以上方式能夠幫你免除99%以上無用警告的困擾了,對於代碼有潔癖同時有比較懶的人來講,這很重要。

(完)

相關文章
相關標籤/搜索