2012-06-29 103 views
1

下午好,Require.js +骨幹優化

我試圖用r.js優化基於Require.js源代碼和骨幹,但在編譯過程中,我發現了以下錯誤:

Tracing dependencies for: main 
Cannot optimize network URL, skipping: empty:.js 
TypeError: Cannot read property 'normalize' of undefined 
In module tree: 
    main 
     app 
     router 
      views/main_panel/event_details 
      helpers/template_manager 

我template_manager模塊不會嘗試訪問任何「正常化」屬性,所以我真的不明白那是什麼意思。 這裏的切入點,以我的應用程序,以及在require.js配置。

require.config({ 
    paths: { 
order: 'libs/requirejs-plugins/order', 
     text: 'libs/requirejs-plugins/text', 
     jQuery: 'libs/jquery/jquery', 
     Underscore: 'libs/underscore/underscore', 
     Backbone: 'libs/backbone/backbone', 
     templates: '../templates', 
    Sync: 'helpers/sync' 
    } 
}); 

require([ 
    'app', 
    'event_manager', 
    'order!https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js', 
    'order!libs/underscore/underscore-min', 
    'order!libs/backbone/backbone-min', 
    'helpers/objects_extension', 
    'helpers/date_extension', 
    'helpers/assets' 
], function(App){ 
    App.initialize(); 
}); 

該應用程序本身或多或少地遵循this tutorial中的內容。 我app.build.js文件是遵循

({ 
    appDir: "../", 
    baseUrl: "js", 
    dir: "../app-build", 
    modules: [ 
     { 
      name: "main" 
     } 
    ], 
    paths: { 
     order: 'empty:', 
     text: 'empty:', 
     jQuery: 'empty:', 
     Underscore: 'empty:', 
     Backbone: 'empty:', 
     templates: '../templates', 
     Sync: 'helpers/sync' 
    } 
}) 

謝謝您的幫助。

回答

4

詹姆斯·伯克說:

文本插件需要由加載它處理文本裝! depenencies。 Loader插件作爲構建的一部分被執行來解決他們的資源。

所以應該足以刪除文本:「空:」從路徑配置,並且只留下不包括:中,因此不包括在最終版本的結果。這假定你有本地可用的text.js可供優化器讀取。

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

+0

它的工作,謝謝! –

+1

通過「假設你有可用text.js本地」我認爲Aaronius指的是這個。我花一段時間才能出這麼認爲它可能幫助澄清大衛有人https://github.com/requirejs/text –

+0

是的,謝謝。 – Aaronius