提醒:本页面将不再更新、维护或者支持,文章、评论所叙述内容存在时效性,涉及技术细节或者软件使用方面不保证能够完全有效可操作,请谨慎参考!

大家可能还记得之前我写的 《使用YUI Compressor优化你的网页》 这篇文章,主要介绍的是雅虎的YUI Compressor工具,这个工具主要用来压缩JavaScript或CSS,当然效果不错,近日在逛Google Code时偶然发现了个好东东Closure Compiler,恩,也是今天介绍的主角。这个是做什么用的呢?看到我的文章标题,大家心里应该有数了吧,Closure Compiler是个强大的脚本优化利器,其主要是用来优化JavaScript,那我为什么还要说压缩呢,原来其在优化的过程中会压缩相应的JS脚本,比如把长变量名变成短变量名,这点和YUI Compressor类似,但是这两个东东究竟有什么区别呢,我认为YUI Compressor强调的是压缩,Closure Compiler强调的是优化,当然明显Closure Compiler要强大些,具体的区别也已经有人总结过了,大家可以移步 这里

在其项目主页上可以看到下面的介绍:

Closure Compiler is a JavaScript optimizing compiler. It parses your JavaScript, analyzes it, removes dead code and rewrites and minimizes what's left. It also checks syntax, variable references, and types, and warns about common JavaScript pitfalls. It is used in many of Google's JavaScript apps, including Gmail, Google Web Search, Google Maps, and Google Docs.

看来功能真的很强大,许多谷歌应用都采用了这个东东进行优化,看来其是有谷歌官方背景的,这样我们可以放心大胆的用到我们项目里,提升我们的脚本性能了。

说了这么多,下面我就简单的介绍下如何获得并使用。

首先登录项目主页 closure-compiler ,然后下载程序包。解压下来,大家可能发现这是个Java程序,虽说是个Java程序,但是.jar文件已经有4MB多大小,足见其源代码的规模也不小。

当然想要运行的话,计算机上必须安装JRE的Java运行时环境,没有安装的童鞋可以在 这里下载

我们把compiler.jar复制到指定的目录下,然后通过下面的命令行进行相关操作。

java -jar compiler.jar --js=src.js --js_output_file=dest.js

其中--js所指示的src.js就是待优化的脚本源文件,--js_output_file所指示的就是优化压缩好的脚本目标文件。

不过使用IE条件注释的童鞋会发现,原来的条件注释被过滤掉了,非常遗憾,这个东东暂时还不能支持IE的条件注释,我建议先用(function(){/*TODO : Code*/})();闭包的形式闭包住条件注释里的脚本代码,然后去掉外围的条件注释Wrapper,然后让条件注释里的代码一起参与优化,由于这些代码是闭包的,当然就很容易在优化过的代码中区别出来,然后再加上条件注释的Wrapper就可以了。