У меня есть app.config.ts в моем угловом приложении, которое выглядит примерно так:
export const APP_CONFIG = {
....
}
Это генерируется при сборке webpack.
Теперь у меня разные угловые модули, которые находятся в отдельном хранилище, которое используется моим угловым приложением. Некоторые из этих модулей также нуждаются в конфигурациях среды, определенных в app.config.ts. Я устанавливаю эти модули с помощью NPM, поэтому они находятся в папке node_modules
.
Моя проблема заключается в том, как я буду поставлять конфигурацию среды для этих модулей, не создавая зависимости для самого приложения?
Я собираюсь сохранить конфигурацию в глобальной переменной или сохранить ее в localStorage при загрузке приложения.
Должен ли я также создавать конфигурацию среды для каждого модуля? Затем обработайте его на сборке webpack?
Любые идеи будут высоко оценены.
Если я понимаю ваш вопрос, вам необходимо передать информацию о конфигурации из основного приложения в собственные внешние библиотеки. Вы можете сделать это с использованием методологии forRoot объяснила в угловых документах здесь.
Внутри вашей внешней Угловой библиотеки измените основной экспортированный модуль, чтобы иметь следующую структуру:
export class MyLibraryModule {
static forRoot(config: configData): ModuleWithProviders {
return {
ngModule: MyLibraryModule,
providers: [
{provide: AppConfigModel, useValue: config }
]
};
}
constructor(@Optional() config: AppConfigModel) {
if (config) { /* Save config data */ }
}
}
Когда вы импортируете этот модуль в свое приложение, используйте статический метод forRoot и передайте данные конфигурации. Вам нужно будет создать соответствующую модель в своем libarary (AppConfigModel в моем примере), чтобы получить APP_CONFIG, который вы передаете в методе forRoot.
imports: [
MyLibraryModule.forRoot(APP_CONFIG),
]