2012-03-28 106 views
0

我知道javascript壓縮的問題已被多次詢問,但我找不到任何回答我的問題。將多個JavaScript文件壓縮到單獨的文件中

我有一個項目,有共同的腳本(jQuery和其他幾個)和頁面特定的。 jQuery Mobile允許您在會話期間通過下載僅在<head>中的任何內容來緩存常見腳本。只要您將<script>置於<div data-role="page">中,只有頁面加載時纔會拖動特定的腳本。

我覺得這很棒,因爲它優化了在瀏覽我的應用程序頁面時下載的腳本,並確保瀏覽器在任何時候都具有最小的JavaScript內存。

但是,由於不能合併的各種文件之間存在依賴關係,因此縮小是非常可怕的。

到目前爲止,我發現不適合我這麼好兩個解決方案:使用一個簡單的縮小腳本,不改變函數和變量名

  • :雙打的文件的大小相比,高級版本
  • 把所有的腳本放在一個壓縮它,然後把它放在<head>:你失去了只下載你可能想腳本能力和瀏覽器加載

不必要的功能(我排除manua LLY明顯改變函數名;))

我要尋找一個壓縮機,可以做其中的一個:

  • 壓縮所有文件一起,但將他們輸出到單獨的文件,以保持模塊化
  • 如果不可能,以高級方式獨立壓縮文件,但使用標籤可防止縮小器將鏈接重命名爲外部函數或變量(如jQuery)

它存在嗎?

回答

0

在熟悉所有這些之後,Google Closure Compiler可以做到這些(還有更多)。

要走的路是定義爲實習醫生:

  • 您正在使用(jQuery的,jQuery Mobile的...)的第三方庫。你可以找到some of them there
  • 的自制您加載seperately

顯然,如果壓縮被分別裝在自制的腳本,你應該導出你想在其他地方使用使用以下方法(detailed in Closure Compiler documentation)變量腳本:

/** 
* A function you want to be able to call from elsewhere after compressing 
* @param {string} a 
*/ 
function exportedFunction(a) {alert(a);} 

window['exportedFunction'] = exportedFunction; 

然後,你可以批量或分別壓縮你想要的文件。這是一個非常強大的工具,我不敢相信我以前沒有使用它。

相關問題