在日常的开发过程中,总是要设置不同的环境,有开发的、测试的、预发的和生产的等等,那么如何在Umi框架中配置多环境变量,以便在不同环境中使用不同的接口baseUrl,下面我们将详细解读一下
1. 环境配置的目的
一个项目通常需要区分开发环境、测试环境和生产环境等等,因为不同环境的接口地址不同。为了方便管理和维护,需要在项目中配置多环境变量。
2. 安装和配置cross-env
• 安装cross-env
go
```bash
npm i cross-env -S
```
• 修改package.json文件
ini
```json
"dev": "cross-env UMI_ENV=dev UMI_DEV=true umi dev",
"start": "cross-env UMI_ENV=prod umi dev",
"build": "cross-env UMI_ENV=prod umi build",
"build-dev": "cross-env UMI_ENV=dev UMI_DEV=true umi build"
```
通过不同的命令启动对应的环境,生产环境使用`UMI_ENV=prod`,测试环境使用`UMI_ENV=dev`。
3. 新增配置文件
• config.dev.ts
arduino
```typescript
import { defineConfig } from 'umi';
export default defineConfig({
define: {
"process.env.UMI_ENV": process.env.UMI_ENV,
},
});
```
• config.prod.ts
arduino
```typescript
import { defineConfig } from 'umi';
export default defineConfig({
define: {
"process.env.UMI_ENV": process.env.UMI_ENV,
},
});
```
4. 使用环境变量配置接口baseUrl
在请求文件中根据process.env.UMI_ENV
的值配置接口的baseUrl:
javascript
let api = "https://dev.xxx.com"; // 测试服
if (process.env.UMI_ENV === 'dev') {
api = "https://dev.xxx.com"; // 测试服
} else if (process.env.UMI_ENV === 'prod') {
api = "https://www.xxx.com"; // 正式服
}
通过以上步骤,可以在Umi项目中实现多环境配置,方便在不同环境中使用不同的接口地址。