在构buildTwitter Bootstrap时,让jshint忽略某些文件
当使用Twitter Bootstrap与其他第三方JS库(例如WordPress“Twenty Twelve”主题中的html5.js
时,我经常遇到这个问题,由于jshint
(或者以前的TB版本中的jslint
)会导致构build失败由于第三方JS库的错误,例如
\n################################################## Building Bootstrap... ##################################################\n js/html5.js: line 3, col 122, Expected ')' to match '(' from line 3 and instead saw ','. js/html5.js: line 3, col 140, Expected an identifier and instead saw ')'. js/html5.js: line 4, col 101, eval is evil. js/html5.js: line 6, col 369, Confusing use of '!'. js/html5.js: line 6, col 422, Confusing use of '!'. js/html5.js: line 7, col 61, 'b' is already defined. js/theme-customizer.js: line 26, col 26, Use '===' to compare with ''. 7 errors make: *** [build] Error 1
我想避免修改第三方库或修改TB的Makefile,因为这会在未来升级时造成问题; 是我唯一的select将第三方JS文件放入一个单独的文件夹。
有没有办法让jshint或TB的构build过程忽略某些JS文件(也许通过一些.jshintrc
configuration,我不知道?)?
因此,有一个选项可以忽略jshint中的文件,但它不是在.jshintrc
设置的,而是一个单独的文件.jshintignore
,这是有道理的。 但是,虽然jshint将在项目的子目录中查找.jshintrc
, .jshintignore
需要位于项目根目录中。 所以使用Twitter Bootstrap, .jshintrc
在/js
而.jshintignore
需要放在/
。
所以要解决我的问题/.jshintignore
需要包含的问题:
js/html5.js js/theme-customizer.js
而就是这样!
作为Lèsemajesté的答案的补充,也可以在JS中写这些注释,而jshint将忽略它们之间的代码:
// Code here will be linted with JSHint. /* jshint ignore:start */ // Code here will be linted with ignored by JSHint. /* jshint ignore:end */
或者如果你只是希望JSHint不要检查一行:
// jshint ignore:line
参考: jshint文档
对我来说最简单的解决scheme是我只是添加/ / // jshint ignore: start
我想忽略的任何文件的顶部