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

Vercel部署报错:npm run build退出码1,已尝试CI=false仍未解决

Vercel部署npm run build退出码1问题解决

问题情况

部署Vercel时执行npm run build后返回退出码1,已尝试设置构建命令为npm run build、添加环境变量CI=false,问题仍未解决。部署日志如下:

部署详情日志:

[15:19:45.948] throw err;
[15:19:45.948] ^
[15:19:45.948]
[15:19:45.948] 错误: error:0308010C:数字信封例程::不支持
[15:19:45.948] opensslErrorStack: [ 'error:03000086:数字信封例程::初始化错误' ],
[15:19:45.948] library: '数字信封例程',
[15:19:45.948] reason: '不支持',
[15:19:45.948] code: 'ERR_OSSL_EVP_UNSUPPORTED'
[15:19:45.948] }
[15:19:45.948]
[15:19:45.948] Node.js v18.16.1
[15:19:45.972] 错误: 命令 "npm run build" 退出,码为1

解决方法

这个错误是Node.js 17及以上版本默认使用的OpenSSL 3.0不兼容旧加密算法导致的,三种可行方案:

  • 修改项目构建命令:打开项目根目录的package.json,给scripts里的build命令加上NODE_OPTIONS=--openssl-legacy-provider前缀。比如React项目改成这样:

    "scripts": {
      "build": "NODE_OPTIONS=--openssl-legacy-provider react-scripts build"
    }
    

    非React项目替换成自己的构建命令即可,比如Next.js用next build。

  • 在Vercel添加环境变量:进入Vercel项目的「设置」→「环境变量」,新增一条:

    • 变量名:NODE_OPTIONS
    • 变量值:--openssl-legacy-provider
      保存后重新触发部署。
  • 降级Node.js版本:在Vercel环境变量里添加NODE_VERSION=16.20.0,指定使用Node.js 16版本(该版本使用OpenSSL 1.1.1,不会出现兼容问题)。

内容的提问来源于stack exchange,提问作者Muhammad Ayyaz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 15:42:54