我使用的持续集成软件通过JavaScript运行JSLint文件,如果它们失败了(使用默认的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:“(Begin)”和“;”之间的意外空格。
;(function($) {
问题在第1行字符1:预期';‘在第5栏,而不是第1栏。;(function($) {
问题出现在第1行字符2:“;”和“(”)之间缺少空格。 ..。
我试着使用一个!
操作符( JSLint )和一些其他的替代方法,但是JSLint仍然抱怨。
我怎样才能得到这个安全网并通过JSLint?
发布于 2011-08-16 17:59:16
修补JSLint不介意。每个人都会受益。
发布于 2011-08-16 18:04:02
如果您将;
单独放在一行上,或者放置其他语法上有效但却毫无意义的语句,会发生什么情况:
"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
发布于 2011-08-16 18:13:50
可能是一个轻率的回答,但您的html可能会这样做:
<script src="common.js"></script>
<script>;</script>
<script src="plugin.js"></script>
或者,如果您不喜欢第二行的内联脚本,请创建一个名为semicolon.js
的文件,然后,您知道.
对不起,如果这是荒谬的,但JSLint不喜欢一个简单的老空语句的一行本身。有点不幸。哦,好吧。
顺便说一句很棒的小提琴。在函数的var声明之后,看到由于缺少分号而运行的警报就像,哇,你知道什么?这个函数被按应有的方式调用!非常有趣。
https://stackoverflow.com/questions/7087188
复制