您的位置:首页 > Web前端 > JavaScript

Google的javaScript压缩工具

2012-11-30 14:41 447 查看
压缩js可以节省客户单下载时间,就拿V6的Tool.js来说吧,压缩前69.5KB,压缩后31.8 KB,如果其中GZIP压缩的话那么客户端下载的文件将会更小了。

下载compiler.jar http://closure-compiler.googlecode.com/files/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使用的命令行代码如下:

<!-- lang: shell -->
java -jar compiler.jar --js Tool.js --js_output_file Tool-compiled.js
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Google javaScript 压缩