Мое приложение использует отложенную загрузку для загрузки необходимых модулей с маршрутами.Все мои модули загружаются по одному и тому же маршруту, объявленному в моем файле tsconfig.json.Большинство из них работает нормально, но по какой-то причине все равно выдает эту ошибку.
ERROR Error: Uncaught (in promise): Error: Cannot find 'TemplateModule' in '@blockframes/material'
Путь @ blockframes / material объявлен в файле tsconfig.ts и ссылается наthis
"@blockframes/material": ["libs/material/src/index.ts"]
Другие библиотеки импортируются таким же образом, и отложенная загрузка работает на них как чудо-шарм.Самое странное здесь то, что я лениво загружаю 2 модуля из библиотеки материалов, и кажется, что только один работает без ошибок.
Вот мой маршрут в app-routing-module:
export const routes: Routes = [
{ path: '', redirectTo: 'layout', pathMatch: 'full' },
{
path: 'auth',
loadChildren: '@blockframes/auth#AuthModule'
},
{
path: 'layout',
component: LayoutComponent,
canActivate: [AuthGuard, OrganizationListGuard],
canDeactivate: [OrganizationListGuard],
children: [
{ path: '', redirectTo: 'home', pathMatch: 'full' },
{
path: 'organization',
loadChildren: '@blockframes/organization#OrganizationModule'
},
{
path: 'account',
// loadChildren: '@blockframes/account#AccountModule' // TODO this fail with "Error: Uncaught (in promise): Error: Cannot find 'AccountModule' in '@blockframes/account'"
loadChildren: 'libs/account/src/lib/account/account.module#AccountModule'
},
{
path: 'home',
canActivate: [MovieListGuard],
canDeactivate: [MovieListGuard],
loadChildren: '@blockframes/movie#MovieModule'
},
{ path: 'templates',
// loadChildren: '@blockframes/material#TemplateModule' // TODO this fail with "Error: Uncaught (in promise): Error: Cannot find 'TemplateModule' in '@blockframes/material'"
loadChildren: 'libs/material/src/lib/template/template.module#TemplateModule'
},
{
path: ':movieId',
canActivate: [MovieActiveGuard],
canDeactivate: [MovieActiveGuard],
loadChildren: '@blockframes/material#DeliveryModule'
}
]
},
{
path: 'not-found',
loadChildren: '@blockframes/ui#ErrorNotFoundModule'
},
{
path: '**',
redirectTo: 'not-found'
}
];
Как видите, у меня та же проблема с @ blockframes / account.Вы также можете принять к сведению, что @ blockframes / material # DeliveryModule загружен из-за ленивости, событие, если TemplateModule получил ту же архитектуру, что и DeliveryModule.
Я понял, что могу изменить свои абсолютные пути на пути @blockframes (дляШаблон и учетная запись), и приложение все равно будет работать после перестройки.Если я остановлю сервер и ng serve
, я снова получу ошибку «Не удается найти модуль».
Я попытался переименовать мой модуль, поскольку материал мог быть ключевым словом, но это не решило проблему.
Большое спасибо за ваше внимание, если у вас возникнут вопросы по этой проблеме, я буду рад ответить на нее так быстро, как смогу.