Лучший способ добиться этого - предоставить объект конфигурации для вашего модуля вместо прямого использования файла среды. Что-то вроде:
import { InjectionToken } from '@angular/core';
export interface LibConfig {
foo: string;
bar: string;
}
export const LibConfigService = new InjectionToken<LibConfig>('LibConfig');
в вашем основном модуле:
export class LibModule {
static forRoot(config: LibConfig): ModuleWithProviders {
return {
ngModule: LibModule,
providers: [
{
provide: LibConfigService,
useValue: config
}
]
};
}
}
и поэтому при добавлении библиотеки к импорту модуля вашего проекта вы можете сделать:
LibModule.forRoot({
foo: environment.foo,
bar: environment.bar
})
и в lib вы можете получить доступ к конфигурации с помощью чего-то вроде:
private libConfig: LibConfig;
constructor(@Inject(LibConfigService) private config) {
this.libConfig = config;
}
public getConfig(): LibConfig {
return this.libConfig;
}