前言
基于vite4+vue3搭建的工程,和后端联调时需要先配置proxy,配置代理的过程中遇到一些问题(比如启动报错、接口访问404等等),弯弯曲曲走了很多坑和弯路!这里我直接贴上解决思路和相关代码了,伙伴们有问题可以直接评论或者私信!
配置
1.配环境变量
在项目根文件下建 .env.development 和 .env.production 两个文件
.env.development文件代码
# 当前环境
NODE_ENV = 'development'
# 标题
VITE_APP_TITLE = ''
# API前缀
VITE_APP_BASE_API = '/api'
# 服务器地址配置
VITE_SERVER = 'http://jsonplaceholder.typicode.com'
.env.production文件代码
# 当前环境
NODE_ENV = 'production'
# 标题
VITE_APP_TITLE = ''
# API前缀
VITE_APP_BASE_API = '/prod-api'
# 服务器地址配置
VITE_SERVER = ''
2.vite.config.js配置文件
import { defineConfig, loadEnv } from 'vite'
export default defineConfig(({ command, mode }) => {
// 添加第三个参数空字符串时 '' ,会在env中包含所有环境变量;反之,只包含.env文件中配置的环境变量
const env = loadEnv(mode, process.cwd(), '')
return {
// 关键代码
server: {
host: '0.0.0.0',
proxy: {
[env.VITE_APP_BASE_API]: {
target: env.VITE_SERVER,
changeOrigin: true,
rewrite: (path) =>
path.replace(RegExp(`^${env.VITE_APP_BASE_API}`), ''),
},
},
},
}
})
loadEnv不携带第3个参数时,打印出env。如下(可以发现,就是.env文件中的配置)
3.axios中进行baseURL配置
const instance = axios.create({
// 在接口前面加上VITE_APP_BASE_API,这样可以转发给对应的服务器
baseURL: import.meta.env.VITE_APP_BASE_API,
timeout: 5000,
})
4.配置接口+页面中调用
接口,我这里测试一个:
然后在页面中引入调用
可以在控制台上看到,打印成功
然后就可以肆无忌惮的在页面上操作数据啦!
完美~