使用Closure Compiler与jQueryUI

4

我使用闭包编译器压缩js应用程序,该应用程序使用jQuery UI,但无法正常工作。

我的操作步骤如下:

  1. 前往此处加载jqueryui js文件
  2. 要求外部化jQuery.ui
  3. 将结果复制到文件中并将其用作外部文件

然而,应用程序出现故障。对话框不再正确显示。爆炸效果不能正常工作,还有几个对话框被创建。有趣的是,jQuery UI 本身在某种程度上可以工作,因为对话框已经被创建。只是应用程序表现不当。

我漏掉了什么吗?


你说的“被要求外部引用jQuery.ui”是什么意思?你做了什么? - Dave
@Dave:我猜他/她使用了链接工具来生成一个外部文件。 - Dan Abramov
1个回答

1

链接的外部提取器似乎无法从jQuery样式文件中提取外部。这很可能是因为jQuery使用“extend”方法来分配对象,而该工具无法识别这些属性也需要作为外部。

要解决此问题,您需要将扩展调用解开为直接赋值:

jQuery.extend(jQuery.ui, { prop1: function() {}, prop2: function() {});

将变成

jQuery.ui = jQuery.ui || {};
jQuery.ui.prop1 = function() {};
jQuery.ui.prop2 = function() {};

另外,在处理jQuery并使用高级优化时,应完全避免使用 "$" 别名。

这只是使用Closure编译器高级优化编译jQuery代码具有挑战性的多个原因之一。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接