参考:
<br />我的需求:
- 在不同环境(dvl、sit)下打包,请求基础地址也需要随环境的变化而改变
<br />遇到的困难:
- umi v3 文档不完善
- 未知bug
<a name="K770H"></a>
1. 创建不同环境的配置文件
此部分可参考:
<br />需要 dvl、sit 两个环境,因此创建两个配置文件,如图:<br />
<br />
<a name="XZEvh"></a>
2. 配置需要的环境变量
此部分可参考:
.umirc.dvl.ts
1import { defineConfig } from 'umi'; 2 3export default defineConfig({ 4 define: { 5 // dvl 环境的请求基础地址 6 'process.env.REQUEST_BASE_URL': 'http://xxx.xxx.xx.xx:8080' 7 } 8});
.umirc.sit.ts
1import { defineConfig } from 'umi'; 2 3export default defineConfig({ 4 define: { 5 // dvl 环境的请求基础地址 6 'process.env.REQUEST_BASE_URL': 'http://xxx.xxx.xx.xx:8080' 7 } 8});
<a name="XgMtL"></a>
3. 配置启动命令
此部分可参考:
<br />如果按照 umi v3 文档中 https://umijs.org/zh-CN/docs/env-variables 说的配置,可能会出现以下错误,大致报错信息如下:
get user config failed, undefined does not exist
<br />需要安装 cross-env,在 package.json 配置如下命令:
<br />1{ 2 ... 3 "build:dvl": "cross-env UMI_ENV=dvl umi build", 4 "build:sit": "cross-env UMI_ENV=sit umi build", 5 ... 6}
