Vercel部署前端项目时yarn run build报错退出的解决方案
解决Node.js v18下Vercel部署
yarn run build报error:0308010C的问题 这个错误是因为Node.js v18默认使用OpenSSL 3.0,废弃了部分旧加密算法,而你的项目构建依赖(如旧版webpack)仍在调用这些算法导致的。以下是针对Vercel部署场景的三种可行解决方案:
方案1:添加Vercel环境变量强制使用旧加密提供者
- 进入Vercel项目后台,打开Settings > Environment Variables
- 新增环境变量:
- 名称:
NODE_OPTIONS - 值:
--openssl-legacy-provider
- 名称:
- 保存后触发重新部署,Vercel会在构建时自动注入该变量,兼容旧加密算法。
方案2:修改构建命令直接指定参数
- 如果你不想改环境变量,可以直接修改Vercel的构建命令:
在项目的Settings > General > Build & Development Settings中,将Build Command改为:NODE_OPTIONS="--openssl-legacy-provider" yarn run build - 或者修改项目根目录的
package.json中的build脚本:
提交修改后重新触发部署即可。"scripts": { "build": "NODE_OPTIONS=\"--openssl-legacy-provider\" react-scripts build" // 替换成你实际的build命令 }
方案3:升级构建工具到兼容版本
如果你的项目使用的是webpack 4及以下版本,建议直接升级到webpack 5.x版本——webpack 5已经适配了OpenSSL 3.0的加密规则,从根源解决兼容问题。升级后无需额外配置,直接执行原build命令即可。
内容的提问来源于stack exchange,提问作者Sachin Kumar
相关产品推荐
相关产品推荐

