Closure-Compiler 主页:https://code.google.com/p/closure-compiler/
或者:https://github.com/google/closure-compiler
文档:https://developers.google.com/closure/compiler/?hl=zh-CN
或者:https://github.com/google/closure-compiler/wiki
压缩js可以节省客户单下载时间,就拿V6的Tool.js来说吧,压缩前69.5KB,压缩后31.8 KB,如果其中GZIP压缩的话那么客户端下载的文件将会更小了。
下载compiler.jar(http://dl.google.com/closure-compiler/compiler-latest.zip)
下载后,在命令行中运行:java -jar compiler –help,我们来来看一下运行压缩工具都需要哪些参数:
1.–charset :指定输入输出文件的字符集,缺省预设UTF-8作为输入文件的字符集,US_ASCII做为输出文件的字符集。
2.–debug:开启调试选项
3.–help:输出帮助信息
4.–version:打印版本信息
5.–js:javascript文件名,可以指定多个
6.–js_output_file:主要输出文件,如果没有指定,压缩后的文件将用标准输出输出
7.–compilation_level[WHITESPACE_ONLY | SIMPLE_OPTIMIZATIONS |
ADVANCED_OPTIMIZATIONS]:本压缩工具(也可称之为编译器)的优化效果可以分为三个等级。
A.WHITESPACE_ONLY,该等级的优化将移除代码中的注释,回车符,不必要的分号和空格,输出的Javascript等同于原有的Javascript。
B.SIMPLE_OPTIMIZATIONS,该等级在A级的基础上,还对表达式和函数进行优化,包括重命名函数的局部变量和参数,缩短他们的名称。由于该等级重命名的变量都是作用域内(函数内),所与不会影响到优化的Javascript代码和其他的代码。该等级为压缩优化的缺省等级。
C.ADVANCED_OPTIMIZATIONS,该等级在B级的基础上,进一步在全局范围里进行转化压缩,是三个等级中最高的压缩。在使用高级压缩时,编译器对你的代码做了很多的假设,如果你的代码不能满足这些架设,压缩后的代码将不能正常运行。C等级将从三个方面来压缩代码: i.more aggressive renaming(更多的重命名)除了重命名函数的局部变量和参数,还重命名全局变量,函数名,和属性。
ii.dead code removal(移除无用的代码)移除没有被调用的代码。
iii.global inlining 用函数体的内容代替函数调用。
Closure Compiler使用的命令行代码如下:
java -jar compiler.jar –js Tool.js –js_output_file Tool-compiled.js