问题描述
现在需要实现一个按钮,点击时需要根据当前不同的发布环境,跳转到不同的地址,这其实就是要根据不同的环境打配置不同的包;
解决方案
查阅umi官网 发现可以通过环境变量 UMI_ENV
区分不同环境来指定配置
image.png
可以配置多份.umirc.env.js
文件或config.env.js
文件来区分不同的环境配置,中间的env
用于区分环境;
其中不带中间那个后缀的文件为默认配置,会在所有环境生效,打包时默认环境配置与指定的环境配置会合并,两者冲突时,指定的环境配置会覆盖默认配置
[图片上传中...(image.png-917e68-1618626930137-0)]
区分好文件后通过defineConfig
方法参数中的 define
属性来定义变量
image.png
设置好配置文件之后还需要在打包的时候区分环境,以调用不同的配置,这里要用到一个包cross-env
,它可以跨平台设置环境变量;
安装好后修改package.json
里的打包指令即可
image.png
在配置文件里定义的变量可以在项目代码中直接使用
image.png