如何让JSLint容忍一个领先的分号?

时间:2011-08-17 01:55:37

标签: javascript jslint

我使用的持续集成软件通过JSLint运行JavaScript文件,如果失败则会抱怨(使用默认的JSLint设置)。

我总是在我的jQuery插件的开头添加;,所以连接它们不会导致这样的事情......

common.js

我无权访问此文件,并且最终无法强制执行分号。

var abc = function() {
    alert(arguments[0]);
}

plugin.js

这是我与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?

3 个答案:

答案 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声明之后看到由于缺少分号而发出警报,就像哇,你知道什么?该功能被调用了!非常有趣。