首页 > 解决方案 > 如何在没有新构建的情况下切换 Ionic 环境

问题描述

我想做的是在 ionic 的单个构建中拥有可配置的环境。我了解如何为不同的环境进行构建,但我想做的是能够在不修改环境变量以外的任何内容的情况下将暂存构建提升到生产环境。这可能吗?

我在想可能是一个脚本,它通过转译的 .js 资源运行并替换定义的环境对象。但考虑到这些文件的缩小丑化性质,这听起来有点脆弱。

有没有人必须这样做或提出解决方案?

标签: cordovaionic-frameworkionic4

解决方案


在您的 Ionic 应用程序 src 文件夹中,您有一个名为environments.

您可以在这些文件中配置参数。

environment.ts用于开发

environment.prod.ts用于生产

当您为生产构建应用程序时,environment.prod.ts文件将替换environment.ts文件..

查看angular.json -> configurations -> production -> fileReplacements

在此处输入图像描述 在此处输入图像描述

编辑 -

如果您想使用相同的二进制文件,而不必构建新的二进制文件,则将 QA 和 PROD 变量放在同一个环境文件中。有点像这样..

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

把它放在两个environment.tsenvironment.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.

希望这可以帮助。


推荐阅读