我使用的持续集成软件通过JSLint运行JavaScript文件,如果失败则会抱怨(使用默认的JSLint设置)。
我总是在我的jQuery插件的开头添加;
,所以连接它们不会导致这样的事情......
我无权访问此文件,并且最终无法强制执行分号。
var abc = function() {
alert(arguments[0]);
}
这是我与common.js
连接的文件。它会直接附加到common.js
的末尾。
(function($) {
$.fn.somePlugin = function() {}
})(jQuery);
jsFiddle这可能导致的问题。
jsFiddle解决方案(我的插件的分号前导)。
然而,JSLint抱怨......
错误:
第1行问题1:两者之间出现意外空间 '(开始)'和';'。
;(function($) {
第1行问题1:预期';'在第5栏,而不是第1栏。
;(function($) {
第1行问题2:';'之间缺少空格和'('。
...
我尝试使用bang运算符(!
)和其他一些替代方法,但JSLint仍然抱怨。
如何让此安全网和通过JSLint?
答案 0 :(得分:6)
补丁JSLint不介意。每个人都会受益。
答案 1 :(得分:0)
如果你将;
单独放在一行上,或者放一些语法上有效但无意义的语句,会发生什么:
"begin plugin";
(function() { // etc
编辑:如何使用void
:
void("begin plugin");
(function() { // etc
//or
void(
(function() { /* your code */ })()
);
编辑2:对此有何不同之处:
if (console && console.log) { // or if (false)?
console.log("Begining plugin definition");
}
(function { // etc
答案 2 :(得分:0)
可能是一个轻率的回答,但你的HTML可能会这样做:
<script src="common.js"></script>
<script>;</script>
<script src="plugin.js"></script>
或者,如果您不喜欢第二行的内联脚本,请创建一个名为semicolon.js
的文件,嗯,您知道....
很抱歉,如果这很荒谬,但JSLint 不喜欢单独一行上的普通旧空语句。有点不幸。哦,好吧。
BTW棒极了小提琴。在函数的var声明之后看到由于缺少分号而发出警报,就像哇,你知道什么?该功能被调用了!非常有趣。