Как редактировать переменные окружения без пересборки в Angular 6? - PullRequest
3 голосов
/ 11 апреля 2019

Обычно я задаю свои URL-адреса API в файле environment.ts. Мне нужно развернуть одну и ту же сборку для нескольких клиентов с разными URL-адресами API. В настоящее время я беру отдельные сборки после изменения переменных среды.

Есть ли способ отредактировать переменные среды после сборки, чтобы я мог дать одинаковую сборку каждому клиенту?

1 Ответ

3 голосов
/ 11 апреля 2019

Я исследовал эту проблему, и это мое решение без использования 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
  }
}

В папке приложения я добавляю папку config / setting.json

Содержание в setting.json

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

В модуле приложения добавить APP_INITIALIZER

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

таким образом, я могу легче изменить значение baseUrl в файле json.

...