ОБНОВЛЕНИЕ
Кажется, что это не должно было работать в Angular 5 - но по какой-то причине так и было.Значение loadChildren
должно быть простой строкой или LoadChildrenCallback .Я пробовал обратный вызов - с Observable - но, как указывают многие проблемы, это неизменно ломает ленивую загрузку.Просто перейдем с параметром простой строки
После обновления до Angular 6 с CLI v6.У меня ленивый загруженный маршрут, настроенный следующим образом
import { BLOG_CONFIG } from './BLOG_CONFIG';
const blogPath = BLOG_CONFIG.blogPath;
const categoriesPath = BLOG_CONFIG.categoriesPath;
const categoriesModulePath = BLOG_CONFIG.categoriesModulePath;
const routes: Routes = [
{ path: `${blogPath}/${categoriesPath}`, loadChildren: categoriesModulePath }
];
Конфигурация блога:
export const BLOG_CONFIG = {
blogPath: 'blog',
postsPath: 'post',
categoriesPath: 'categories',
categoriesModulePath: './modules/categories/categories.module#CategoriesModule',
}
При переходе к маршруту blog/categories
возникает консольная ошибка:
ERROR Error: Uncaught (in promise): Error: Cannot find module "./modules/categories/categories.module.ngfactory".
Error: Cannot find module "./modules/categories/categories.module.ngfactory".
Если я изменю маршрут, чтобы loadChildren
напрямую использовал строку, она работает нормально!
const routes: Routes = [
{ path: `${blogPath}/${categoriesPath}`, loadChildren: './modules/categories/categories.module#CategoriesModule' }
];
Этого не происходило в Angular 5Я что-то упустил здесь??
Примечание: когда он работает со строкой, я получаю вывод CLI для ng serve --aot
chunk {modules-categories-categories-module-ngfactory} modules-categories-categories-module-ngfactory.js, modules-categories-categories-module-ngfactory.js.map (modules-categories-categories-module-ngfactory) 70.5 kB [rendered]
Я думаю, что этоwebpack
может быть проблема с чтением объекта BlogConfig, но не уверен