Я хочу создать библиотеку, чтобы иметь возможность использовать ее в нескольких приложениях. Библиотека будет модулем, который позволяет подключаться через портал. Я хотел бы настроить конфигурации для создания этого модуля из приложения, конфигурации должны быть в состоянии переопределить источник маршрута (пример: «аутентификация» может быть переопределена «аутентификацией»). Поэтому я написал этот модуль:
{ path: 'authentification', component: StyleRootComponent, children: [
{
path: 'portail',
component: PortailComponent
},
{
path: 'passwordForgotten',
component: PasswordForgotenComponent
}
]
}
];
@NgModule({
declarations: [StyleRootComponent, PortailComponent, PasswordForgotenComponent],
imports: [
RouterModule.forChild(appRoutes),
AmplifyAngularModule,
FormsModule,
MatFormFieldModule,
MatInputModule,
MatCardModule,
BrowserAnimationsModule,
MatButtonModule
],
exports: [StyleRootComponent]
})
export class LibraryConnectionModule {
static forRoot(config: any): ModuleWithProviders {
appRoutes[0].path = config.urlAuth;
return {
ngModule: LibraryConnectionModule,
providers: [
AmplifyService,
AuthentificationService,
{
provide: CognitoConfigsService,
useValue: config.cognitoConfigs
}
]
}
}
}
Из приложения я могу просто импортировать его
imports: [...,
LibraryConnectionModule.forRoot({cognitoConfigs : {}, urlAuth : "auth"}),
...,
]
Все работает, как и ожидалось, с JIT, но когда я пытаюсь собрать для производства (AOT), яполучил эту ошибку:
Ошибка при ошибке при компиляции шаблона 'AppModule'
Вызовы функций не поддерживаются в декораторах, но был вызван 'LibraryConnectionModule'.
Я знаю проблемупримерно об этой строке (я не знаю, почему): appRoutes[0].path = config.urlAuth;
Итак, в процессе производства я не могу выбрать URL-адрес своих компонентов из приложения ...
Кто-то знает, как я могу это сделать? (Я открыт для любых предложений)
заранее спасибо Макс