Javascript 是否可以在jQuery中使用闭包编译器高级_优化?

Javascript 是否可以在jQuery中使用闭包编译器高级_优化?,javascript,jquery,compiler-construction,google-closure,google-closure-compiler,Javascript,Jquery,Compiler Construction,Google Closure,Google Closure Compiler,我不断收到错误,即给定对象的函数(重命名)不存在。是否有一个版本或设置或其他东西可以让它工作?你必须……但是我不确定是否有人制作过,但我还没有看到任何1.4+版本 编辑:。jQuery在高级模式下与闭包编译器不兼容。我同意让它兼容是一件非常好的事情,因为它的方法链接语法非常容易地支持原型虚拟化,从而大大提高了执行速度 事实上,在流行的JavaScript库(即闭包库除外)中,只有Dojo工具包与闭包高级模式兼容 在jQuery中使用闭包编译器高级模式时,必须为jQuery使用外部文件。Exter

我不断收到错误,即给定对象的函数(重命名)不存在。是否有一个版本或设置或其他东西可以让它工作?

你必须……但是我不确定是否有人制作过,但我还没有看到任何1.4+版本

编辑:。

jQuery在高级模式下与闭包编译器不兼容。我同意让它兼容是一件非常好的事情,因为它的方法链接语法非常容易地支持原型虚拟化,从而大大提高了执行速度

事实上,在流行的JavaScript库(即闭包库除外)中,只有Dojo工具包与闭包高级模式兼容


在jQuery中使用闭包编译器高级模式时,必须为jQuery使用外部文件。Extern文件将告诉编译器这些是保留方法,并接受这些参数,参数数据类型应该是这样的,所以不要缩小方法名称,并以这种方式检查参数数据类型

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

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

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

您还可以使用它作为闭包库的联机externs提取器

我发布了一个请求,要求jQuery与闭包编译器完全兼容:)这将允许删除所有未使用的jQuery,并使编译后的代码真正神秘:)您可以将jQuery与具有高级模式的Google闭包编译器一起使用。我在所有项目中都是这样工作的。您所需要的只是一个为jQuery方法创建的externs文件。是的,但是您跳过了高级模式的许多最佳优点——几乎看起来像是一个超级简单的模式。正确重写jQuery应该删除甚至jQuery对象本身,并使每个方法都虚拟化。1.7.3pre的构建已完成,并与CC-AO兼容:新的jQuery外部文件(包括1.8)位于externs contrib链接处