如何在不使用Angular 6进行重建的情况下编辑环境变量?

时间:2019-04-11 07:05:22

标签: angular angular-cli

我通常在environment.ts文件中设置API URL。我必须将同一内部版本部署到具有不同API URL的多个客户端。目前,在更改环境变量之后,我将进行单独的构建。

构建后是否可以编辑环境变量,所以我可以为每个客户端提供相同的构建?

1 个答案:

答案 0 :(得分:2)

我研究了此问题,这是我不使用environment.ts的解决方案

我在json文件中定义了全局设置。因为如果我们在ts文件中定义,如果在生产模式下进行构建,则很难找到要更改值的常量。

export class SettingService  {

  constructor(private http: HttpClient) {

  }



public getJSON(file): Observable<any> {
      return this.http.get("./assets/configs/" + file + ".json");
  }
  public getSetting(){
      // use setting here
  }
}

在应用程序文件夹中,我添加文件夹configs / setting.json

setting.json中的内容

{
    "baseUrl": "http://localhost:52555"
}

在应用模块中添加APP_INITIALIZER

 {
      provide: APP_INITIALIZER,
      useFactory: (setting: SettingService) => function() {return setting.getSetting()},
      deps: [SettingService],
      multi: true
    }

通过这种方式,我可以更轻松地更改json文件中的baseUrl值。