使用jquery关闭编译器应用程序

Her*_*nan 5 javascript jquery minify google-closure-compiler plovr

我已经设法创建了一个小型js应用程序,它使用jQuery和jQuery UI,使用谷歌的闭包编译器和高级优化.为了清楚起见:我没有编译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
Run Code Online (Sandbox Code Playgroud)

属性映射是一个键/值文件,其中包含编译前后的属性名称:

aprop:a
html:b
each:c
Run Code Online (Sandbox Code Playgroud)

2.-将prop.out复制到prop.in并对其进行编辑,以便将jQuery属性(函数)替换为相同的名称(这可以使用list jquery的函数轻松实现):

aprop:a
html:html
each:each
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

4.-现在在你的html中,包括min.js和jquery-1.4.3.min.js.应用程序应该是可用的,但您的代码应该更快更小.

这会缩小你的代码,而不是jquery.

正如我所说,我已经在一个小应用程序中测试了这个.如果有人拥有更大更复杂的应用程序,那么知道这样可行会很高兴.

谢谢,

HEG

Jan*_*Jan 3

您是否考虑过使用externs。据我所知,这是防止 jQuery 方法在代码中被缩短的方法。jQuery 的外部程序作为对闭包项目的贡献而存在。

对于 jQuery UI,你可能想尝试这个。这是我遇到过一次但没有亲自测试过的东西

顺便说一句:如果您感兴趣,有一个非常方便的闭包构建工具:Plovr。我一直在使用它,并且让外部人员使用它。