Google的javaScript壓縮工具:Closure-Compiler


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

參考文檔:Google的javaScript壓縮工具


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM