Я не могу получить bundles
для работы в оптимизированной сборке, я пытаюсь загрузить некоторый внешний пакет (не входит в процесс вывода процесса сборки).requirejs и предварительно построенные пакеты
В requirejs.config
:
paths: {
'mymodules': '../lib/test-bundle/test-bundle'
},
bundles: {
'mymodules': ['mymodule1', 'mymodule2']
}
test-bundle
содержание:
console.log("defining modules...");
define('mymodule1', ['jquery'], function($) {
console.log('within mymodule1', $.fn.jquery);
return {
test: 'module1'
};
});
define('mymodule2', ['jquery'], function($) {
console.log('within mymodule2', $.fn.jquery);
return {
test: 'module2'
};
});
В сборки конфигурацииpaths
для mymodules
, mymodule1
и mymodule2
установлены на empty:
(или в процессе сборки не в состоянии), Я не использую опцию modules
в конфигурации build для создания пакетов.
Если я использую источники, поскольку они все работают нормально, как и ожидалось.
Во встроенной версии (но не оптимизирован) test-bundle
загружается и "defining modules"
печататься, то тайм-аут загрузки mymodule2
:
Error: Failed to load root module (viewmodels/shell). Details: Load timeout for modules: mymodule2(…)
Uncaught Error: Failed to load root module (viewmodels/shell). Details: Load timeout for modules: mymodule2
http://requirejs.org/docs/errors.html#timeout
В построенном и оптимизированной версии есть еще одна ошибка:
Uncaught ReferenceError: define is not defined
например, если test-bundle
загружен до requirejs
реализовать define()
.
Что мне не хватает или что-то не так?
редактировать
Я создал ветку с выше тест, чтобы установить и построить (nodejs
npm
и, вероятно, grunt-cli
необходимы в системе)
git clone https://github.com/xenogenesi/HTMLStarterKitPro
cd HTMLStarterKitPro
git checkout test-bundle
# nodejs npm required on the system (maybe grunt-cli)
npm install # required only once to install node modules
grunt build-only # create a build/ directory and the content
php -S localhost:8888 # to publish the sources as they are
# browse to http://localhost:8888
php -S localhost:7777 -t build # to publish the built versions
# browse to http://localhost:7777 for built but not optimized
# browse to http://localhost:7777/index2.html for built optimized
(см this commit для всех файлов изменен, чтобы добавить тестовый комплект)
[mcve] был бы полезен. Кроме того, какую версию RequireJS вы используете? Новые версии исправляют ошибки, присутствующие в старых версиях. – Louis
@Louis, предоставляя минимальный пример, потребует усилий времени, а среда не будет одинаковой, поэтому, пожалуйста, см. Обновление, если вы знаете, как установить узел, npm, grunt-cli должен быть быстрым и легким. RequireJS version is 2.2.0 – Alex