2

我有不同的环境添加到我的 angular.json 文件中,如此处所述。

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

当我启动我的应用程序时,例如通过--configuration=prod我的 environment.prod.ts 文件被加载。到目前为止,一切都很好。

现在我想检查我的组件之一当前选择了哪个环境。但我不知道从哪里可以得到这些信息。一种解决方案是向我的每个环境文件添加一个新属性,例如envName : "envNameXYZ",这很容易出错且乏味。

还有其他解决方案如何获取环境(名称)吗?

4

3 回答 3

3

envName最好的解决方案是在每个环境文件中添加一个新属性。没有其他可能知道环境名称。

于 2018-06-12T14:16:11.803 回答
2

对于任何对我如何解决它感兴趣的人,这里是我的代码:

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",
  }


}

环境.staging.ts

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

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

在我的组件中,我可以简单地执行以下代码段来检查是否选择了 staging env:

 if(environment.envType.isStaging()){
   console.log("Yippie we are in staging environment!");
 }
于 2018-06-13T07:34:45.013 回答
0

有可用的实验性 isDevMode 功能,但这不会涵盖您制作的自定义功能...

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

于 2018-06-12T14:26:29.023 回答