是否可以使用闭包编译器ADVANCED_OPTIMIZATIONS与jQuery?

我不断收到给定对象不存在函数(重命名)的错误。 是否有发布或设置或其他东西使它工作?

你必须将jQuery声明为编译器的外部 …但是我不确定是否有人创建了一个, 有1.3.2的extern文件 ,但我还没有看到任何1.4+版本。

编辑: 此问题线程在这里有社区构建1.4版本 。

在使用带有jQuery的Closure Compiler Advanced Mode时,必须使用externs文件来实现jQuery。 外部文件将告诉编译器这些是保留方法并接受这些参数和参数数据类型应该是这样的,所以不要缩小方法名称并以这种方式检查参数数据类型。

您可以在此处获取由Google Developers创建的外部文件。 此文件是为jQuery-1.4.3生成的。 但目前可能会使用任何版本的jQuery。 新添加的方法可能不包含在该文件中,因此您应该将其添加到externs文件,语法和同义词非常简单。

您还可以使用额外的compier标志将externs文件的位置说给编译器。 语法应该是这样的

--compiler_flags= "--externs=path/to/jquery.externs.js" 

您也可以使用此工具 ,它是Closure Library的在线外部提取器。

jQuery与高级模式下的Closure Compiler不兼容。 我同意使它兼容是一件非常好的事情,因为它的方法链语法很容易为原型虚拟化提供很大提高的执行速度。

实际上,在流行的JavaScript库(除了Closure Library之外)中,只有Dojo Toolkit与Closure Advanced模式兼容。

http://dojo-toolkit.33424.n3.nabble.com/file/n2636749/Using_the_Dojo_Toolkit_with_the_Closure_Compiler.pdf?by-user=t

Interesting Posts