我的公司已经启动了一个私有npm软件包存储库。我正在尝试将一些常规重用的代码放入软件包中,然后可以从服务器安装这些软件包并导入到项目中。对于我们所有的项目,我们都使用环境文件以及该项目使用的任何api的基本URL的值。通常,我们会将环境文件导入服务中,并使用基本url值执行对api的调用。对于打包服务,我们无法以相同的方式做到这一点。
现在,我正在处理登录/授权包。到目前为止,我能想到的最好的方法是:
虽然杂乱无事,但可以。问题来了,我们还有拦截器调用服务中的函数,我觉得我想出的任何解决方案都是超级hacky,而且我觉得必须有更好的方法。
建议将不胜感激。
答案 0 :(得分:2)
我们有类似的问题。诀窍是通过模块的声明将配置注入到库中。例如,在库中,需要注入配置的模块的定义如下:
export class TestModule {
static forRoot(moduleConfig: any): ModuleWithProviders {
return {
...
providers: [
{ provide: 'testModuleConfig', useValue: moduleConfig }
]
};
}
在库的服务中,获取配置:
constructor(
@Inject('testModuleConfig') private ModuleConfig: any
)
要在使用该库的应用程序中使用它,请在forRoot
中传递配置:
imports: [
TestModule.forRoot(environment.appconfig),
],
希望这会有所帮助。