【问题标题】:jQuery compression leads to errorsjQuery压缩导致错误
【发布时间】:2010-04-16 07:54:46
【问题描述】:

当我有一个运行良好且没有错误的 jquery 脚本然后压缩并上传它然后返回错误时,有人可以解释一下吗?

非常感谢。

编辑我使用 jsLint 时遇到的唯一错误是:

错误:

隐含全局:$ 3,25,27,28,31,32,34,35,36,38,45,46,47,49,50,61,63,64,65,67,71,75 ,79,83,87,91,94,95,96,98,101,102,103,111,113,114,115,121,123,124,125,127,130,131,132,142,144,145,146,147,148,149,150,151,152,153,154,155,171,173,174,175,177,180,181,182,192,194,195,196,197,198,199,200,201,202,214,216,217,218,220,223,224,225,234,240,241,242,243,244,245,246,247,248,249,250,251,253,254,255,256,257,258,259,260,窗口7,警报56,106,137,187,230,文件234

这是导致它在 jQuery 中的即时猜测

【问题讨论】:

  • 您可以调整 jslint 以禁用仅影响代码样式而不影响错误的各种检查。对未使用 var 声明的变量的访问是隐含的全局变量。您可以使用 /*global ... */ 注释指令指定外部全局变量。

标签: jquery compression


【解决方案1】:

您很可能在某些行缺少语句终止符;,例如,即使我没有指定以下代码也可以正常运行:

$(....).click(function(){
  .....
}) <-- // no `;` char here

甚至这个:

alert('hello') <-- // no `;` char here

但是当你压缩它时,你忘了把那个字符放在某个地方,你会收到错误。

确保除了任何可能的问题之外,您的脚本中不是这种情况。

【讨论】:

  • 我已经检查过(之前遇到过这个问题)firefox throws; missing ) after argument
  • 抱歉找到了,打了个typeo' };
【解决方案2】:

可能是因为您的脚本中有错误,在脚本未压缩时不会导致任何问题。

我建议尝试在脚本上使用jslint 来验证它是否正确。

【讨论】:

  • 感谢不错的工具,Problem at line 88 character 38: Unescaped '-'. if( to.search( /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[... 是什么意思??
【解决方案3】:

JSLint 的替代品是JavaScriptLint。可能也值得检查一下。您在浏览器中遇到什么错误? Firefox 的Firebug 应该会为您提供有关错误消息的更多详细信息。

【讨论】:

    【解决方案4】:

    我不确定您使用什么来压缩您的 javascript,但我从使用 Google Closure compiler 时注意到它本身并不遵循“规则”。

    鉴于此代码:

    var t = true;
    if (t) { alert("it's true!"); }
    

    在 JSLint 中没有给出错误(“隐含全局:警报 2”除外)

    如果我使用“谁需要空格”设置来压缩它,这就是结果

    var t=true;if(t)alert("it's true!");
    

    这当然是优化的,但现在给出了一个 JSLint 错误。

    【讨论】:

    • 我发现压缩机没有添加';'在压缩文件的末尾。我刚刚添加了一个,现在可以正常工作了。感谢所有回复。
    猜你喜欢
    • 2014-12-08
    • 2012-03-17
    • 1970-01-01
    • 2021-07-18
    • 1970-01-01
    • 1970-01-01
    • 2017-01-29
    • 1970-01-01
    • 2018-03-14
    相关资源
    最近更新 更多