2012-11-27 27 views
1

我使用dustc(與dustjs-linkedin一起發貨)來編譯我的模板。但是,它只允許我一次編譯一個模板。所以我一直兩個目錄,templates/js/templates/並使用下面的腳本編譯它們一氣呵成:將灰塵模板編譯爲一個JavaScript文件

#!/bin/bash 
for name in `ls templates/ | grep -o -P '^[^.]+'`; do 
    dustc --name=$name templates/$name.html js/templates/$name.js 
done 

然而,在這種方式中,模板在不同的JS文件。它們都處於相同模式:

(function(){dust.register("xxx",body_0);function body_0(chk,ctx){...}return body_0;})(); 

這可能會導致瀏覽器下載大量不必要的字節。所以我希望將這些模板編譯成一個JS文件,或將編譯後的JS文件組合在一起。我怎樣才能做到這一點?

回答

0

不知道確切的問題是什麼,但如果您只是想要合併這些文件,那麼使用像sprocket或require.js的優化器工具這樣的依賴關係管理器就可以解決問題。

將它們放入同一個文件時它們處於相同模式的事實不會執行任何操作 - 它們都包含在匿名自執行函數中以保護名稱空間。

另一方面,如果您試圖通過刪除重複模式來優化代碼,那麼我建議使用uglifyjs或google的閉包編譯器自動執行此操作。

組合和最小化的代碼不應該是一個問題的話 - 它會工作得很好:)希望這有助於

+0

Thx。在使用dust.js一段時間後,我發現這種模式並不常見。希望uglifyjs可以優化。 –

0

您可以使用Duster.js(自動除塵手錶&預編譯於Node.js)和r.js的結合合併成一個文件。