我已经设法创建一个小型 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
属性映射是一个键/值文件,包含编译前后的属性名称:
aprop:a
html:b
each:c
2.- 将 prop.out 复制到 prop.in 并对其进行编辑,以便 jQuery 属性(函数)被相同的名称替换(这可以使用列表 jquery 的函数轻松实现自动化):
aprop:a
html:html
each:each
3.- 使用 prop in 作为属性映射输入重新编译
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 的代码。
正如我所说,我已经在一个小应用程序中对此进行了测试。如果有人有一个更大更复杂的应用程序,那么很高兴知道它可以工作。
谢谢,
健康
最佳答案
您是否考虑过使用 externs .据我所知,这是防止 jQuery 方法在您的代码中被缩短的方法。 Externs for jQuery作为对关闭项目的贡献而存在。
对于 jQuery UI,您可能想尝试 this .这是我遇到过一次但还没有亲自测试过的东西
顺便说一句:如果您有兴趣,可以使用这个非常方便的闭包构建工具:Plovr .我一直在使用它,并且让外部人员使用它。
关于javascript - 使用 jquery 的闭包编译器应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4370037/