设置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%以上无用警告的困扰了,对于代码有洁癖同时有比较懒的人来讲,这很重要。

(完)

相关文章
相关标签/搜索