Javascript 库的Angular CLI 6.x环境文件

Javascript 库的Angular CLI 6.x环境文件,javascript,angular,typescript,angular-cli,Javascript,Angular,Typescript,Angular Cli,我已经用新的CLI 6.x创建了一个库。我还在其中创建了一个Angular服务,我想为我的开发和产品环境使用不同的URL。因此,我在我的库文件夹中创建了一个environment.ts和一个environment.prod.ts文件 //dev 导出常量环境={ 制作:假,, url:'开发url' }; //刺激 导出常量环境={ 制作:对,, url:“产品url” };谢谢@R.理查兹为我指出了正确的解决方案! 这两个来源帮助我找到了正确的注射方法:和 所以我所做的 创建了Injecti

我已经用新的CLI 6.x创建了一个库。我还在其中创建了一个Angular服务,我想为我的开发和产品环境使用不同的URL。因此,我在我的库文件夹中创建了一个
environment.ts
和一个
environment.prod.ts
文件

//dev
导出常量环境={
制作:假,,
url:'开发url'
};
//刺激
导出常量环境={
制作:对,,
url:“产品url”

};谢谢@R.理查兹为我指出了正确的解决方案! 这两个来源帮助我找到了正确的注射方法:和

所以我所做的

创建了
InjectionToken
并修改了my
TkSharedModule

export const BASE_URL=new InjectionToken('BASE_URL');
//...
导出类TkSharedModule{
静态forRoot(主机:字符串){
返回{
ngModule:TkSharedModule,
供应商:[{
提供:基本URL,
useValue:主机
}]
}
}

}
这似乎是个坏主意。您的库不应管理配置;消费应用程序应将需要的内容传递给库。从这个意义上说,一个库应该有点傻,但足够聪明,可以知道何时还没有提供它所需要的配置。@R.Richards我喜欢你的想法。你能给我举个例子吗;这是给Firebase的。具体来说,看看他们是如何实现/使用
initializeApp
功能的。所有的细节都在他们的代码中。玩得开心@R.Richards谢谢你的提示,我设法弄明白了。这是一个优雅的解决方案!如果您想在库模块/项目的
NgModule
decorator中使用传递到
forRoot
方法的内容,这种方法可行吗?您是指environment.url的值吗?如果是,那么是的,因为在库的服务中,BASE_URL将具有environment.URL的值。但是我说的是在
NgModule
decorator中使用它,而不是在库的内部服务中使用它。@JakeSmith,找到如何做的方法了吗?