Angular Cli 6 Название среды чтения - PullRequest
0 голосов
/ 12 июня 2018

У меня есть разные среды, добавленные в мой файл angular.json, как описано здесь.

https://github.com/angular/angular-cli/wiki/stories-application-environments

Когда я запускаю свое приложение, например, через --configuration=prod мой environment.prod.tsфайл загружается.Пока все хорошо.

Теперь я хочу проверить в одном из моих компонентов, какая среда в данный момент выбрана.Но я не знаю, где я могу получить эту информацию.Одним из решений было бы добавить новое свойство, например envName : "envNameXYZ", в каждый из моих файлов среды, но это подвержено ошибкам и утомительно.

Есть ли другое решение, как получить среду (имя)?

Ответы [ 3 ]

0 голосов
/ 12 июня 2018

есть экспериментальная функция isDevMode, но она не распространяется на сделанные вами ...

https://angular.io/api/core/isDevMode

0 голосов
/ 13 июня 2018

Для всех, кто интересуется, как я решил это, вот мой код:

envTypeConfig.ts

export class EnvTypeConfig {

  readonly type: EnvType.TYPE;

  constructor(type: EnvType.TYPE) {
    this.type = type;
  }

  isStaging() : boolean {
    return this.type == EnvType.TYPE.STAGING;
  }
}


export namespace EnvType {

  export enum TYPE {
    DEV = "dev",
    STAGING = "staging",
    FEATURE = "feature",
    PROD = "prod",
  }


}

environment.staging.ts

import {EnvType, EnvTypeConfig} from "./envTypeConfig";

export const environment = {
  envType: new EnvTypeConfig(EnvType.TYPE.STAGING)
};

И в моих компонентах я могу просто выполнить следующий фрагмент кода, чтобы проверить, выбран ли этап env:

 if(environment.envType.isStaging()){
   console.log("Yippie we are in staging environment!");
 }
0 голосов
/ 12 июня 2018

Лучшее решение - добавить новое свойство envName в каждый из файлов вашей среды.Нет другой возможности узнать имя среды.

...