У меня есть такая проблема на некоторое время, и лучшее решение, которое я нашел, это:
Добавить статический класс в ваши библиотечные модули:
export class Lib1Module {
static forRoot(config: any): ModuleWithProviders {
return {
ngModule: Lib1Module,
providers: [{provide: 'config', useValue: config}]
};
}
}
export class Lib2Module {
static forRoot(config: any): ModuleWithProviders {
return {
ngModule: Lib2Module,
providers: [{provide: 'config', useValue: config}]
};
}
}
Затем передать environment
из app.module
в Lib1Module
& Lib2Module
Пример:
imports:[
CommonModule,
BrowserAnimationsModule,
ReactiveFormsModule,
HttpClientModule,
RouterModule,
BrowserModule,
FormsModule,
GigLib1Module.forRoot(environment),
GigLib2Module.forRoot(environment)
]
Теперь environment
файл внедрен в вашу библиотеку.
Как его использовать:
environment :any
constructor(@Inject('config') config)
{
if (config) {
this.environment = config;
}
}
Теперь среду можно легко изменить из основного проекта.