React应用部署Vercel后空白页,报‘rh is not a function’错误求助
解决React 18 + Vite + React Router部署Vercel后报‘rh is not a function’的问题
调整Vite的base配置
Vite不依赖Create React App的homepage字段,需在vite.config.js/vite.config.ts中配置base属性:- 部署到Vercel根域名时,设为
'/' - 部署到子路径(如仓库名子域名)时,设为
'/你的仓库名/'
示例配置:
import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' export default defineConfig({ plugins: [react()], base: '/', })- 部署到Vercel根域名时,设为
修正React Router路由写法
确保使用React Router v6+的规范写法:- 用
Routes替代旧版Switch Route组件的element属性传入JSX,而非组件引用
错误示例:
<Route path="/" component={Home} />正确示例:
<Route path="/" element={<Home />} />- 用
强制清除Vercel缓存重部署
Vercel缓存的旧构建产物可能引发异常,操作步骤:- 进入Vercel控制台对应项目的Deployments页面
- 选择最新部署记录,点击
Redeploy - 取消勾选
Use existing Build Cache,强制重新构建
校验依赖版本兼容性
确保react、react-dom、react-router-dom与vite版本兼容:- React 18需搭配react-router-dom v6.3.0+、vite v3.0.0+
执行以下命令重新安装兼容依赖:
rm -rf node_modules package-lock.json npm install- React 18需搭配react-router-dom v6.3.0+、vite v3.0.0+
本地复现生产环境问题
先在本地构建生产包并预览,便于排查代码问题:npm run build npx serve dist如果本地预览也出现相同错误,可直接在本地调试定位问题(比如检查未正确导出的函数、依赖开发环境变量的逻辑等)
内容的提问来源于stack exchange,提问作者thanhung
相关产品推荐
相关产品推荐

