cordova - 如何在没有新构建的情况下切换 Ionic 环境
问题描述
我想做的是在 ionic 的单个构建中拥有可配置的环境。我了解如何为不同的环境进行构建,但我想做的是能够在不修改环境变量以外的任何内容的情况下将暂存构建提升到生产环境。这可能吗?
我在想可能是一个脚本,它通过转译的 .js 资源运行并替换定义的环境对象。但考虑到这些文件的缩小丑化性质,这听起来有点脆弱。
有没有人必须这样做或提出解决方案?
解决方案
在您的 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.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
.
希望这可以帮助。
推荐阅读
- r - dplyr::mutate(cur_group_id) 无法识别分组
- https - 由 MBEDTLS 生成的 Chrome 拒绝证书
- javascript - 如何在javascript中放置laravel echo函数
- powershell - 运行 generate-vapid-keys --json web-push 时如何解决错误?
- android - ViewModel 中的 LiveData 类型不匹配
- angular - 从角度到后端的社交登录(laminas api 工具)
- ethereum - web3 encodeFunctionCall 不起作用(在 1 个事务中同时调用 2 个特定函数不起作用)
- javascript - SecurityError:无法在“HTMLCanvasElement”上执行“toBlob”:可能无法导出受污染的画布
- assembly - MIPS 从地址加载值
- python - 单个选项卡可显示多个不同的小部件面板选项