Angular 4 在不同的 lib 或者 application 共享 environment

参考

比如,你在一个项目里面创建了多个 lib 或者 aplication 他们每个获取的 env 都是不同的,这里又两个翻案

第一:你可以设置 angular.json 文件

1
2
3
4
5
6
7
8
9
10
11
12
13

...

"configurations": {
"production": {
"fileReplacements": [
{
"replace": "projects/lib-xxxx/src/environments/environment.ts",
"with": "projects/lib-xxxx/src/environments/environment.prod.ts"
}
],

...

第二:你可以设置 inject 和 provider use 来解决

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import {config} from '../environments/environment';

@NgModule({
providers: [
{
provider: 'someEndpointUrl', useValue: config.someEndpointUrl
}
]
})
class AppModule {
}

-----

@Component({...})
class MyComponent {
constructor(@Inject('someEndpointUrl') endpointUrl: string) {
}
}