2009-06-17 51 views
5

我想在yui壓縮器中壓縮javascript, 如何寫壓縮javascript文件。Makefile其中壓縮javascript

因爲語法很難理解,所以 你能給我一個樣本的Makefile給我嗎?

+0

我真的不知道爲什麼有人會爲此而煩惱。只需使用gzip編碼服務您的JS並完成它。 Gzip將非常有效地壓縮文本。 – SpliFF 2009-06-17 02:59:12

+0

當然我期望效果轉移效率。此外,我期望閱讀我的js代碼時有輕微的困難。 – freddiefujiwara 2009-06-17 03:17:43

回答

10

你的Makefile看起來像

code.compressed.js: code.js 
    compressor -o [email protected] $< 

注意,第二行縮進與製表符,而不僅僅是空間。 make實用程序關心這一點。

code.compressed.js是文件應寫入的名稱,code.js是要壓縮的文件,而compressor是執行壓縮的程序。

-o標誌按照編譯器和類似工具的慣例指示輸出文件。你可能會有所不同;檢查它的文檔。

在這種情況下,變量[email protected]是「此規則的目標」的Makefile速記,code.compressed.js。同樣,$<是「此規則的第一個依賴項」的縮寫。這些變量非常有用,因此您不必重複自己,也不必在文件重命名時進行重複更改。

如果您有將全部被壓縮到一個輸出文件中的多個文件,你可以把他們所有的依賴行,然後使用特殊的變量$^生成規則指定所有的人:

code.compressed.js: code1.js code2.js 
    compressor -o [email protected] $^ 

另外,如果你希望他們每個單獨壓縮,你可以寫一個模式規則,並用它爲所有的人:

TARGETS = code1.cjs code2.cjs code3.cjs 

all: $(TARGETS) 

%.cjs: %.js 
    compressor -o [email protected] $< 

使默認建立的第一個目標它看到的情況是all。要壓縮到的文件列表由TARGET變量的內容給出。 %是一個通配符,它​​將替代生成匹配源文件名和目標文件名的規則。