在构建Twitter Bootstrap时让jshint忽略某些文件

时间:2013-02-06 23:49:14

标签: twitter-bootstrap build makefile jslint jshint

当使用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 配置?)?

3 个答案:

答案 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添加到我想要忽略的文件的顶部