Vite 的 proxy 代理功能只在 H5 开发环境 下生效,对于 App、微信小程序、鸿蒙等平台不支持代理,必须直接使用真实域名。
通过环境变量 + 条件编译的方式,实现不同平台使用不同的 API 地址。
.env - 默认配置(所有环境的基础配置).env.development - 开发环境配置.env.production - 生产环境配置| 平台 | 环境 | API 地址 | 说明 |
|---|---|---|---|
| H5 | 开发 | /base |
通过 Vite proxy 代理到 http://localhost:8080 |
| H5 | 生产 | https://nxy.gbdfarm.com:9000/pro-uniapp |
真实域名 |
| 小程序 | 所有 | https://nxy.gbdfarm.com:9000/pro-uniapp |
真实域名 |
| App | 所有 | https://nxy.gbdfarm.com:9000/pro-uniapp |
真实域名 |
| 鸿蒙 | 所有 | https://nxy.gbdfarm.com:9000/pro-uniapp |
真实域名 |
// 请求: /base/api/user/info
// ↓ Vite proxy 转发
// 实际请求: http://localhost:8080/api/user/info
// 请求: https://nxy.gbdfarm.com:9000/pro-uniapp/api/user/info
// ↓ 直接请求
// 实际请求: https://nxy.gbdfarm.com:9000/pro-uniapp/api/user/info
H5 开发
npm run dev:h5
自动使用 /base 代理路径
小程序/App/鸿蒙开发
npm run dev:mp-weixin # 微信小程序
npm run dev:app # App
自动使用真实域名
npm run build:h5 # H5 生产
npm run build:mp-weixin # 微信小程序生产
npm run build:app # App 生产
所有平台都使用真实域名
如需修改 API 地址,编辑对应的环境变量文件:
编辑 .env.development:
VITE_BASE_URL=/base
VITE_UPLOAD_URL=http://nxy.gbdfarm.com
编辑 .env.production:
VITE_BASE_URL=https://nxy.gbdfarm.com:9000/pro-uniapp
VITE_UPLOAD_URL=https://nxy.gbdfarm.com
VITE_ 开头才能在代码中访问使用条件编译判断平台:
// #ifdef H5
const isH5 = true;
// #endif
// #ifndef H5
const isH5 = false;
// #endif
const dev = {
serve: isH5 ? "/base" : "https://nxy.gbdfarm.com:9000/pro-uniapp",
upload: import.meta.env.VITE_UPLOAD_URL
};
配置 H5 开发环境代理:
server: {
proxy: {
'/base': {
target: 'http://localhost:8080',
changeOrigin: true,
rewrite: (path) => path.replace(/^\/base/, ''),
},
},
}
A: 小程序运行在微信客户端,不是浏览器环境,无法使用 Vite 的开发服务器代理功能。
A: 需要启动本地后端服务,或者使用内网穿透工具(如 ngrok)将本地服务暴露到公网。
A:
VITE_ 开头vite.config.js - Vite 配置文件(包含 proxy 配置)config/api.js - API 地址配置utils/request.js - 请求拦截器.env - 默认环境变量.env.development - 开发环境变量.env.production - 生产环境变量