Как переключить среду Ioni c без новой сборки - PullRequest
0 голосов
/ 06 августа 2020

Я бы хотел иметь настраиваемое окружение в одной сборке в ioni c. Я понимаю, как создавать для разных сред, но я хотел бы иметь возможность продвигать промежуточную сборку в производственную среду, не изменяя ничего, кроме переменных среды. Возможно ли это?

Я подумал, может быть, сценарий, который запускается через транспилированные. js ресурсы и заменяет определенные объекты среды. Но это звучит хрупко, учитывая уменьшенную и уродливую природу этих файлов.

Кто-нибудь должен был это сделать или придумать решение?

1 Ответ

0 голосов
/ 06 августа 2020

Внутри папки Ioni c application sr c у вас есть папка с именем environments.

Вы можете настроить свои параметры в этих файлах.

environment.ts is используется для разработки

environment.prod.ts используется для производства

При сборке приложения для производства файл environment.prod.ts заменяет файл environment.ts ..

Проверить angular.json -> configurations -> production -> fileReplacements

enter image description here введите описание изображения здесь

РЕДАКТИРОВАТЬ -

Если вы хотите использовать один и тот же двоичный файл, без необходимости создавать новый двоичный файл, вам нужно иметь переменные QA и PROD в одном файле среды .. Примерно так ..

export const environment = {
  QA:{
      ... your QA params go here
  },
  PROD:{
      ... your PROD params go here
  }
}

Поместите это в environment.ts и environment.prod.ts

Затем создайте globalConfig.service.ts

import { environment } from "../../environments/environment";
export class GlobalConfigService {
  public globalConfig:any;
  private default = 'QA';
  constructor(){
    //make an api call here to your web server to fetch which 
      configuration is to be used
    //assign your api response to this.default
   
    this.globalConfig = environment[this.default];
  }
}

Затем вы можете импортировать globalConfigService, где вам нужно получить доступ к параметрам и использовать globalConfig.

Надеюсь, это поможет.

...