Для своего проекта была необходимость подгружать модули из вне, если они существуют. Внешней утилитой создается JSON соответствия имени модуля файлу в котором он находится. Сделал две внешние функции findDep и loadModule. Первая ищет модуль, вторая загружает модуль если он в принципе существует.
Пример загрузки внешних модулей при помощи загрузчика LAB.js.
var modulesDep = {"cart/cartItemView":"cart.js","mainMenu":"mainMenu.js","mainMenu/mainMenuView":"mainMenu.js"};
modules.setOptions({
findDep: function( dep ) {
return modulesDep.hasOwnProperty(dep);
},
loadModule: function( moduleName, callback ) {
var
filename = modulesDep[moduleName];
// end of vars
console.log('loading module', filename);
$LAB.script( filename ).wait(callback);
};
});
Сделал загрузку асинхронной: в опциях задается функция loadModules, в которую передается массив имен модулей, которые необходимо загрузить. В тестах сделал ассинхронную загрузку нескольких модулей.
Для своего проекта была необходимость подгружать модули из вне, если они существуют. Внешней утилитой создается JSON соответствия имени модуля файлу в котором он находится. Сделал две внешние функции findDep и loadModule. Первая ищет модуль, вторая загружает модуль если он в принципе существует.
Пример загрузки внешних модулей при помощи загрузчика LAB.js.