2014-11-05 4 views
1

После оптимизировать модуль AMD и ее зависимости с помощью r.js я получаю эту ошибку ....Single Оптимизированный модуль возвращает Неопределенное в RequireJS

Uncaught TypeError: undefined is not a function

Если я загружаю неоптимизированная модуль AMD и иметь requirejs динамически загружать все его зависимости, он отлично работает.

Вот как я загрузить модуль ...

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

     var mainModuleObject = new mainmodule(); 

}

Основной модуль и его зависимости должным образом восстановлены (я вижу его с помощью Fiddler), но основной модуль не определен, когда я попробуйте его создать. Мои конфигурации конфигурации правильные, а прокладки для Underscore и jquery также прекрасны. Не использовать Backbone. Имейте экспорт для всех модулей, отличных от AMD. В консоли отсутствуют ошибки загрузки модуля.

Идеи о том, как я могу устранить эту проблему?

ответ

1

Сгорел 8 часов, решив эту невероятно глупую проблему.

Требовать, чтобы JS Optimizer создавал идентификаторы модулей на лету для ваших модулей. Когда вы указываете «имя» и «выезд» для модуля, который хотите оптимизировать, и имя оптимизированного модуля соответственно, «имя» должно быть в файле filepath WITHOUT «.js» в конце. «out» ДОЛЖЕН иметь «.js» в конце. Если вы включите «.js» в конец пути к файлу модуля, который вы оптимизируете, он добавит этот суффикс к идентификатору модуля, который по какой-либо причине убивает все выполнение без какой-либо ошибки, указывающей на проблему с идентификатором модуля , Ебена мать.