2012-12-19 62 views
8

我們在工作中有一個問題,我們正在使用需要的js,但我們的文件夾結構是一個有點不同, 我們有以下幾點:RequireJs minifcation - 複雜的目錄結構

--js folder 
    --Folder 
     ---some base js files 
    -Folder 
     ---main 
      --src 
       ---require.js 
       --- require JS modules 
     --plugin js files 
     --more js files 

我們願來縮小這些JS文件,以便爲生產單一的js文件這樣

---js folder 
    --min-all.js 

這可能嗎? 如果是這樣怎麼樣? .. 任何幫助,將不勝感激!

謝謝!

我只是想我會澄清,其他文件夾包含標準的非模塊化JavaScript文件,它們可以是插件或簡單的JavaScript助手的組合。

回答

6

簡短的回答是:是的,RequireJS可以做到這一點。

基本上,您將需要創建一個需要縮小的所有資源的JS文件。然後你會將優化器指向該文件,並將它們混合在一起。

require(["one", "../another/two", "folder/three", "folder/inner/four" ... ]); 

如果這個文件被稱爲myfile.js,你可以運行類似的參數優化,以這樣的:

node r.js -o name=myfile out=optimized.js 

如果你有,你不想納入最終優化的文件庫或其他文件,你會使用excludeShallow標誌。例如

node r.js -o name=myfile out=optimized.js excludeShallow=jquery.min 

有更多的選擇,所以你應該看看他們的optimization documentation如果您還沒有。

+0

所以myfile.js會使所有的包括,它是否也需要包含不在src/..下的文件?像外部庫,插件等? – Nima

+1

IIRC優化器遍歷依賴關係鏈,因此使這裏提供的「引導程序」應該可以全部引入。 – Aren

+0

感謝您的快速回復,在其他工作中,data-main屬性下的文件將成爲myfile.js? – Nima