Я подготовил угловой модуль 2 (скажем, модуль Core), который опубликован на npm.Этот основной модуль работает как основной модуль в проекте Angular (импортируется в main.ts как модуль начальной загрузки).
Проблема в том, что если я собираю модуль include из папок проекта и запускаю ng serve с параметром --aot, все работает хорошо.Но если я импортирую его из dist или node_modules в качестве пакета сборки, лениво загруженные компоненты перестают работать, если я запускаю его с параметром --aot.
Аналогичные файлы:
В AppRouterModule устанавливает маршрут для DefaultModule
import {NgModule} from '@angular/core';
import {Routes, RouterModule} from '@angular/router';
import {AuthGuard} from './services/auth-guard.service';
const appRoutes: Routes = [
{path: '', redirectTo: 'default', pathMatch: 'full'},
{path: 'default', loadChildren: './default/default.module#DefaultModule'}
];
@NgModule({
imports: [
RouterModule.forRoot(appRoutes)
],
exports: [
RouterModule
],
providers: [
AuthGuard
]
})
export class AppRoutingModule {
}
В Core модуль импортируется DefaultModule
@NgModule({
imports: [
DefaultModule,
],
declarations: [
...
],
providers: [
...
],
bootstrap: [
...
]
})
В DefaultModule устанавливается компонент и дочерние маршруты через DefaultRoutingModule
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { DefaultComponent } from './default.component';
import { DefaultRoutingModule } from './default-routing.module';
import { SharedModule } from '../shared/shared.module';
import { ReactiveFormsModule } from '@angular/forms';
import {NgxPermissionsModule} from 'ngx-permissions';
@NgModule({
imports: [
CommonModule,
DefaultRoutingModule,
SharedModule,
ReactiveFormsModule,
NgxPermissionsModule.forChild(),
],
declarations: [
DefaultComponent,
],
entryComponents: [
],
})
export class DefaultModule { }
DefaultRoutingModule
import {NgModule} from '@angular/core';
import {RouterModule, Routes} from '@angular/router';
import {NgxPermissionsGuard} from 'ngx-permissions';
import {DefaultComponent} from './default.component';
import {AuthGuard} from '../services/auth-guard.service';
const defaultRoutes: Routes = [
{
path: '', component: DefaultComponent, children: [
{
path: '', component: DefaultComponent, canActivate: [NgxPermissionsGuard, AuthGuard],
data: {
permissions: {
only: ['default'],
redirectTo: ''
}
}
},
]
},
];
@NgModule({
imports: [
RouterModule.forChild(defaultRoutes)
],
exports: [RouterModule]
})
export class DefaultRoutingModule {
}
После импортаЯдро от node_modules, когда ng serve --aot, отображается ошибка:
ERROR in Could not resolve module ./default/default.module relative to ../node_modules/...core.module.ts
Может кто-нибудь объяснить мне, где ошибка?Когда Core не был перемещен в node_modules как модуль, все работает правильно.