Один оптимизированный модуль возвращает Undefined в RequireJS
После того, как я оптимизирую модуль AMD и его зависимости с помощью r.js, я получаю эту ошибку....
Uncaught TypeError: undefined не является функцией
Если я загружаю неоптимизированный модуль AMD и динамически загружаю все его зависимости requirejs, он работает нормально.
Вот как я загружаю модуль...
require(['jquery', "templates/mainmodule"],
function ($, mainmodule) {
var mainModuleObject = new mainmodule();
}
Основной модуль и его зависимости извлекаются правильно (я вижу это с помощью Fiddler), но основной модуль не определен, когда я пытаюсь создать его экземпляр. Мои конфиг-сопоставления правильные, и подкладки для Underscore и jquery также подойдут. Не использует Backbone. Есть экспорт для всех не-AMD модулей. В консоли нет ошибок загрузки модуля.
Идеи о том, как я могу решить эту проблему?
1 ответ
Сожгли 8 часов, решая эту невероятно глупую проблему.
Требуется JS Optimizer будет создавать идентификаторы модулей на лету для ваших модулей. Когда вы указываете "name" и "out" для модуля, который вы хотите оптимизировать, и, соответственно, имя оптимизированного модуля, "name" должно быть путь к файлу модуля БЕЗ ".js" в конце. "out" ДОЛЖЕН иметь ".js" в конце. Если вы добавите ".js" в конец пути к файлу оптимизируемого модуля, он добавит этот суффикс к идентификатору модуля, который по какой-либо причине убивает все выполнение без ЛЮБОЙ ошибки, указывающей на проблему с идентификатором модуля., Ебена мать.