2013-05-12 32 views
1

我與the following tutorial一起工作,嘗試將我的項目優化爲一個.js文件,但不幸的是我似乎無法獲得預期的結果。我得到r.js爲我創建一個優化的文件夾,但不是一個文件,而是在每個單獨的文件夾中獲得每個.js文件的簡化副本。似乎最後的連接步驟不知何故丟失。將RequireJS/Backbone項目忽略到一個.js文件中?

我想利用現有的配置文件,而不是使用路徑,我不知道如果特定的步驟是打破它。

我構建/ app.build.js是:

({ 
    appDir: '../', 
    baseUrl: 'js', 
    mainConfigFile: '../js/config.js', 
    dir: '../../my-app-build', 
    modules: [{ 
    name: 'main' 
    }] 
}) 

我main.js文件有配置文件作爲其依賴關係:

require(["config"], function() { 
    require(['underscore', [...] 
    [...] 
    } 
} 

而且配置文件是所有的我聲明項目依賴關係:

require.config({ 
    baseUrl: "js", 
    paths: {[...]}, 
    shim: {...]}, 
}); 

有沒有人知道爲什麼我可能無法獲取單個文件放我正在找?我嘗試了另一種方法in this post,但是隻有這樣才能爲我配置main.js,並在其中添加配置文件。

謝謝!

回答

3

這個問題是由下面的選項從r.js缺失導致生成配置文件:

findNestedDependencies: true 

沒有它,r.js不會超過main.js中的第一個要求,因此只加載config.js,而不加入下一級依賴關係。僅供參考(請注意,這樣可以節省優化的產品在同一個源文件夾,這是不理想的)看起來是這樣的:

({ 
    baseUrl: '.', 
    mainConfigFile: 'config.js', 
    name: 'main', 
    out: 'main-build.js', 
    findNestedDependencies: true, 
}) 
0

指定輸出文件路徑:

({ 
    // ... 
    out: '../main.min.js' 
}) 
1

我有同樣的問題,得到了從GitHub的問題列表中的解決方案。可能是這樣的配置參數將幫助你太

https://github.com/jrburke/r.js/issues/379

If you only want one JS file built, instead of using dir: use out: for a single JS file build.

+0

你碰巧有一個爲你工作的樣本構建的配置文件?這真的很有幫助。 – 2013-05-13 04:42:15

+0

它存在於我的Github上的項目資源庫中https://github.com/deeptechtons/BackboneGarage/blob/master/Widget/build.js – Deeptechtons 2013-05-13 05:20:42

+0

mainConfigFile是否可以與路徑互換,還是必須始終存在路徑?如果我要複製並粘貼配置文件中已有的內容,它會感覺像重複。 – 2013-05-13 05:39:41

相關問題