2014-11-05 61 views
1

後,我的優化AMD模塊,它的使用r.js我得到這個錯誤的依賴....一種優化模塊中RequireJS返回undefined

Uncaught TypeError: undefined is not a function

如果我加載未優化的AMD模塊,並有requirejs動態加載所有的依賴關係,它工作正常。

下面是如何加載模塊...

require(['jquery', "templates/mainmodule"], 
    function ($, mainmodule) { 

     var mainModuleObject = new mainmodule(); 

}

主模塊和它的依賴正確檢索(我看到它使用招),但主要的模塊是不確定的,當我嘗試實例化它。我的配置映射是正確的,並填充Underscore和jquery也很好。不使用骨幹。爲所有非AMD模塊導出。控制檯中沒有模塊加載錯誤。

想法如何解決這個問題?

回答

1

燒了8小時解決這個令人難以置信的愚蠢問題。

要求JS Optimizer將爲您的模塊實時創建模塊ID。當您爲要優化的模塊分別指定「name」和「out」以及分別爲優化模塊的名稱時,「name」應該是模塊文件路徑末尾沒有「.js」。 「out」最後應該有「.js」。如果在要優化的模塊的文件路徑末尾添加「.js」,則會將該後綴添加到模塊ID中,無論出於何種原因,該後綴都將殺死整個執行,而不會出現任何指示模塊ID問題的任何錯誤。神聖的狗屎。