当使用Twitter Bootstrap与其他第三方JS库时,我经常会遇到此问题,例如来自WordPress“Twenty Twelve”主题的html5.js
,其中构建失败,因为jshint
(或{{在先前版本的TB中我认为由于第三方JS库而引发错误,例如
jslint
我想避免修改第三方库或修改TB的Makefile,因为这会在将来导致升级问题;是我将第三方JS文件放入单独文件夹的唯一选择。
有没有办法让jshint或TB的构建过程忽略某些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
配置?)?
答案 0 :(得分:90)
因此可以选择忽略jshint中的文件,但它不是在.jshintrc
中设置,而是在单独的文件.jshintignore
中设置,这是有道理的。但是,虽然jshint将在项目的子目录中查找.jshintrc
,但.jshintignore
需要位于项目根目录中。因此,使用Twitter Bootstrap时,.jshintrc
位于/js
,而.jshintignore
需要位于/
。
所以要解决问题/.jshintignore
需要包含:
js/html5.js
js/theme-customizer.js
就是这样!
答案 1 :(得分:32)
作为Lèsemajestéanswer的补充,你也可以在你的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 docs
答案 2 :(得分:12)
对我来说最简单的解决方案是我只需将// jshint ignore: start
添加到我想要忽略的文件的顶部