2012-05-03 27 views
1

我正在尋找一個工具來壓縮我的JS文件。任何壓縮JS文件的高級工具?

我想要的不只是簡單地刪除不必要的字符; 我更喜歡使用工具來減少函數中局部變量的長度。

更好的是,我的工具可以減少所有其他 東西的長度,如全局變量,函數名等。這是爲了在未經我們同意的情況下保護網絡查看器未使用的代碼。例如,該工具應該將變量或函數名稱從「some_variable」,「some_function」重命名爲「sv」,「sf」等,然後重構所有相關的引用。

我試圖挖網,但找不到類似的東西。

+1

您是否在尋找小型化? –

+1

您在搜索時如何錯過Google [Closure Compiler](https://developers.google.com/closure/compiler/)和[/Packer/](http://dean.edwards.name/packer/)? – Joseph

+1

我發現[UglifyJS](https://github.com/mishoo/UglifyJS)很不錯。 –

回答

1

Google Closure Compiler這樣做。它有各種設置,但即使是「簡單優化」設置也會縮短變量名稱和(在知道該函數永遠不會在腳本外調用)函數名稱的情況。它甚至可以在需要節省時內聯功能。

例如,假設這個腳本:

jQuery(function($) { 
    var allDivsOnThePage = $("div"), 
     someParagraphsAsWell = $("p"); 

    setColor(allDivsOnThePage, "blue"); 
    setColor(someParagraphsAsWell, "green"); 

    function setColor(elms, color) { 
     return elms.css("color", color); 
    } 
}); 

使用封閉編譯器簡單的優化(並告訴它我們正在使用jQuery)產量:

jQuery(function(a){var b=a("div"),a=a("p");b.css("color","blue");a.css("color","green")}); 

注意它是如何不僅縮短標識符,但重複使用一個它檢測到它可能(在這種情況下,沒有節省我們任何東西,但在其他情況下,它可以),並且內嵌setColor函數,因爲這導致節省。