Привет други.
Ленивая загрузка модулей в angular2 в связке с webpack выглядит примерно так:
loadChildren: () => new Promise(resolve => {
(require as any).ensure([], (require: any) => {
resolve(require("./module_path")["ModuleName"]);
}, "chunkName")
})
Эта конструкция громоздкая и по этому я хочу вынести все это добро в отдельную функцию а модули загружать через нее.
Пример:
function loadModule(path: string){
// обработка строки path
let p = new Promise(resolve => {
(require as any).ensure([], (require: any) => {
resolve(require(path)[ModuleName]);
}, chunkName)
});
return p;
}
loadChildren: () => loadModule('./module_path#ModuleName')
Проблема в том, что при компиляции, я получаю одно уведомление и одну ошибку:
Уведомление:
Critical dependency: require function is used in a way in which dependencies cannot be statically extracted
Ошибка:
var p = new Promise(function (resolve) {
!(function webpackMissingModule() { var e = new Error("Cannot find module \".\""); e.code = 'MODULE_NOT_FOUND'; throw e; }()).ensure([], function (require) {
resolve(require(path)[moduleName]);
}, chunkName);
});
Конечно я гуглил, много что нашел и испробовал, но ничего не помогло.
Хотелось бы понять, в чем проблема, что я делаю не так, как это все решить ?
Буду признателен за помощь/советы!