uni-app使用vue3 vite反向代理报错
uni-app使用vue3 vite反向代理报错
项目信息 | 详细信息 |
---|---|
产品分类 | uniapp/H5 |
PC开发环境操作系统 | Windows |
PC开发环境操作系统版本号 | win10 |
HBuilderX类型 | 正式 |
HBuilderX版本号 | 3.4.7 |
浏览器平台 | Chrome |
浏览器版本 | 版本 100.0.4896.75(正式版本) (64 位) |
项目创建方式 | HBuilderX |
示例代码:
manifest.json设置VUE版本3
根目录新建vite.config.js文件
import { defineConfig } from 'vite'
export default defineConfig({
server: {
port : 3001,
proxy: {
'/api': {
target: 'http://jsonplaceholder.typicode.com',
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, '')
},
}
}
})
运行时报错
10:26:32.866 正在编译中...
10:26:33.062 Port 3000 is in use, trying another one...
10:26:33.064 vite v2.9.5 dev server running at:
10:26:33.065 > Local: http://localhost:3001/
10:26:33.067 > Network: use `--host` to expose
10:26:33.072 ready in 811ms.
10:26:33.117 The following dependencies are imported but could not be resolved:
10:26:33.119 vue (imported by E:/flx-code/uni-app-sxrd/main.js)
10:26:33.121 vuex (imported by E:/flx-code/uni-app-sxrd/store/index.js)
10:26:33.125 Are they installed?
操作步骤:
同上
预期结果:
不报错
实际结果:
uniapp使用vue3 vite反向代理报错
bug描述:
uniapp使用vue3 vite反向代理报错
尝试:直接npm i安装 vue和vuex这个报错没了,但是App.vue就不能用了...
自定义 vite.config 时,必须注册 uni 的插件
import { defineConfig } from “vite”;
import uni from “@dcloudio/vite-plugin-uni”;
/**
- @type {import(‘vite’).UserConfig}
*/
export default defineConfig({
plugins: [uni()],
});
在使用 uni-app
和 Vue 3
结合 Vite
进行开发时,配置反向代理时可能会遇到一些问题。以下是一些常见的错误及其解决方法:
1. 代理配置错误
在 vite.config.js
中配置代理时,确保代理配置正确。以下是一个基本的代理配置示例:
import { defineConfig } from 'vite';
import uni from '@dcloudio/vite-plugin-uni';
export default defineConfig({
plugins: [uni()],
server: {
proxy: {
'/api': {
target: 'http://your-api-server.com',
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, '')
}
}
}
});
2. 路径重写问题
在代理配置中,rewrite
函数用于重写请求路径。确保路径重写逻辑正确,否则可能会导致请求失败。
3. 跨域问题
如果目标服务器不支持跨域请求,可能会导致请求失败。确保目标服务器允许跨域请求,或者在代理配置中设置 changeOrigin: true
。
4. 端口冲突
确保 Vite
开发服务器使用的端口没有被其他应用程序占用。可以在 vite.config.js
中指定端口:
server: {
port: 3000, // 指定端口
proxy: {
'/api': {
target: 'http://your-api-server.com',
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, '')
}
}
}
5. 网络问题
确保你的开发环境可以访问目标服务器。如果网络连接有问题,代理请求也会失败。
6. 控制台错误信息
查看浏览器控制台和终端中的错误信息,通常会有详细的错误提示,帮助你定位问题。
7. 检查 uni-app
版本
确保你使用的 uni-app
版本支持 Vue 3
和 Vite
。如果版本不兼容,可能会导致各种问题。
8. 检查 Vite
插件
确保你使用的 Vite
插件与 uni-app
兼容。例如,@dcloudio/vite-plugin-uni
是官方推荐的插件。
9. 重启开发服务器
在修改 vite.config.js
后,确保重启开发服务器以使配置生效。
10. 检查 package.json
确保 package.json
中的依赖项正确安装,并且版本兼容。
示例项目结构
以下是一个简单的项目结构示例:
my-uni-app/
├── src/
│ ├── pages/
│ ├── App.vue
│ └── main.js
├── vite.config.js
├── package.json
└── index.html
示例 vite.config.js
import { defineConfig } from 'vite';
import uni from '@dcloudio/vite-plugin-uni';
export default defineConfig({
plugins: [uni()],
server: {
proxy: {
'/api': {
target: 'http://your-api-server.com',
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, '')
}
}
}
});
示例 package.json
{
"name": "my-uni-app",
"version": "1.0.0",
"scripts": {
"dev": "vite",
"build": "vite build"
},
"dependencies": {
"vue": "^3.2.0"
},
"devDependencies": {
"@dcloudio/vite-plugin-uni": "^2.0.0",
"vite": "^2.0.0"
}
}