Vercel部署Vite+React项目遇权限拒绝错误(退出码126)
Vercel部署Vite + React项目遇Permission Denied错误的解决方案
问题详情
部署Vite + React项目到Vercel时,构建过程报错:
sh: line 1: /vercel/path0/node_modules/.bin/vite: Permission denied
Error: Command "npm run build" exited with 126
当前项目配置:
package.json脚本:
"scripts": { "dev": "vite", "build": "vite build", "preview": "vite preview" }
- Node版本声明:
"engines": { "node": "18.x" }
- Vite版本:6.3.5
已尝试操作均无效:删除node_modules与package-lock.json后重装依赖、清除Vercel构建缓存、修改构建脚本为node node_modules/vite/bin/vite.js build,本地构建可正常完成。
可行解决方法
1. 修改npm安装命令,禁用符号链接
在Vercel项目的Settings > Build & Development Settings中,将Install Command改为:
npm install --no-bin-links
该参数会避免npm创建符号链接,绕过Vercel构建环境中的bin文件权限限制。
2. 切换包管理器为pnpm或yarn
Vercel对pnpm/yarn的兼容性更优,可规避npm的符号链接权限问题:
- 本地使用
pnpm install或yarn install生成对应的锁文件(pnpm-lock.yaml/yarn.lock) - 在Vercel构建设置中,将
Package Manager切换为对应的pnpm或yarn
3. 直接调用Vite的ES模块入口
修改package.json的build脚本,绕开bin文件直接调用Vite的CLI模块:
"build": "node --experimental-modules node_modules/vite/dist/node/cli.js build"
4. 降级Vite到稳定版本
Vite 6.x属于较新版本,可能与Vercel构建环境存在适配问题,尝试降级到5.x稳定版:
npm install vite@5.x --save-dev
提交修改后的package.json与package-lock.json重新部署。
5. 配置npm全局路径环境变量
在Vercel项目的Settings > Environment Variables中添加以下变量:
- 键:
NPM_CONFIG_PREFIX - 值:
/tmp/npm
该配置会指定npm的全局安装路径到临时目录,避免权限冲突。
内容的提问来源于stack exchange,提问作者Junior Sillva03
相关产品推荐
相关产品推荐

