You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.01 23:12:28