我已经设法使用google的闭包编译器和高级优化来创建一个使用jQuery和jQuery UI的小型js应用程序。为了清楚起见:我没有编译jQuery本身,只是我的应用程序使用jquery。我想知道是否有人可以确认这个想法也适用于更大更复杂的应用程序。
程序如下:
0.-你有一个调用jquery-1.4.3.min.js,test1.js和test2.js的html文件
1.-编译您的应用并导出属性映射文件
java -jar closure-compiler.jar \
--compilation_level ADVANCED_OPTIMIZATIONS \
--js test1.js --js test2.js \
--property_map_output_file prop.out > min.js
属性映射是一个键/值文件,其中包含编译前后的属性名称:
aprop:a
html:b
each:c
2.-将prop.out复制到prop.in并对其进行编辑,以便将jQuery属性(函数)替换为相同的名称(这可以通过列表jquery的函数轻松实现):
aprop:a
html:html
each:each
3.-使用prop作为属性映射输入重新编译
java -jar closure-compiler.jar \
--compilation_level ADVANCED_OPTIMIZATIONS \
--js test1.js --js test2.js \
--property_map_input_file prop.in > min.js
4.-现在在你的html中,包括min.js和jquery-1.4.3.min.js。应用程序应该是可用的,但您的代码应该更快更小。
这会缩小你的代码,而不是jquery的。
正如我所说,我在一个小应用程序中对此进行了测试。如果有人拥有更大更复杂的应用程序,那么知道这样可行会很高兴。
谢谢,
HEG
答案 0 :(得分:3)
您是否考虑过使用externs。据我所知,这是保持jQuery方法在代码中缩短的方法。 Externs for jQuery作为对闭包项目的贡献而存在。
对于jQuery UI,您可能想尝试this。这是我曾经遇到过但未经过自己测试的事情
BTW:如果您有兴趣,可以使用这个非常方便的构建工具来关闭:Plovr。我一直都在使用它,并且我使用它进行外部工作。