2013-10-25 59 views
0

我試圖縮小和連接需要模塊到一個文件中。使用構建腳本連接requirejs模塊

舉例來說,如果我有一個名爲article.js像以下文件:

define(["jquery","flexslider","share_div"],function(){}); 

我希望所有這些依賴的進行組合和精縮到一個文件中。

我在構建腳本中有以下內容,但它不會將文件組合在一起,只是縮小。

這是我build.js文件:

{ 
    "appDir": "../js", 
    "baseUrl": "../js", 
    "dir": "../www-build", 
    "mainConfigFile": "../js/common.js", 

    "modules": [ 
     { 
      "name": "common" 
     }, 
     { 
      "name": "page/article", 
      "exclude": ["common"] 
     } 
    ], 
    "paths": { 
     "jquery": "empty:", 
     "jquery_ui": "empty:", 
     "twitter_bootstrap": "empty:" 
    } 
} 

我的要求和構建腳本可能是錯誤的理解,但是我所設想的文件將被連接在一起。

任何指導,將不勝感激。

+0

看看你在你的問題中顯示的內容,在我看來,你應該得到你所期待的。爲了進一步分析,向我們展示''r.js''創建的''build.txt''文件的內容將會很有用。 (它將位於輸出目錄的根目錄中。) – Louis

回答

0

還要縮小作爲依賴關係追蹤的各個模塊的嵌套依賴關係,請將此附加屬性指定爲構建文件的一部分:findNestedDependencies: true。 (請參閱full RequireJS doc的第318-324行。)

這是如果articles.js是common.js中的依賴項,並且您在通過common.js進行跟蹤以構建連接和最小化文件。如果您只是試圖構建獨立模塊本身,我不確定是否缺少串聯。

+0

如果article.js文件列出了它所需的依賴關係,我是否理解優化過程應該將所有這些依賴關係連接到構建的article.js文件中? –

0

您在評論中包含的build.txt文件(我提到的評論已在我編寫答案後被Andy刪除)有點難以閱讀,因爲它尚未作爲預格式化代碼包含在內。從我在您提供的文件中可以看到的,r.js確實將article.js的依賴關係連接成一個文件。所以看來你已經以某種方式解決了你原來的問題。

因此,爲什麼你的輸出沒有出現在正確的目錄中,我只能推測。您在問題中顯示的build.js文件設置爲將所有內容都放入../www-build,但是您的build.txt文件顯示輸出存儲在../js中。以下是推測部分:有時,當我們正在試圖尋找解決方案時,我們會在這裏和那裏進行更改,並失去了我們所在的位置。那肯定發生在我身上。我所做的就是清理我的開發樹(刪除構建),檢查構建配置以確保我認爲使用的是確實使用並重新運行構建。