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

AWS EC2部署React+Node项目执行npm run build报0308010C错误如何解决?

问题根因

你遇到的ERR_OSSL_EVP_UNSUPPORTED错误是版本兼容性问题导致:Node.js 17及更高版本默认内置OpenSSL 3.0,移除了对旧版不安全哈希算法的支持,而你项目中依赖的低版本react-scripts(低于v5.0.0)配套的webpack 4仍然在调用已被弃用的算法,因此构建触发报错。

可选用的解决方法

方案1:临时添加环境变量(最快生效,无需修改依赖)

在执行构建命令前添加OpenSSL legacy provider的参数即可:

  • Linux/macOS 环境直接执行:
NODE_OPTIONS=--openssl-legacy-provider npm run build
  • Windows CMD环境执行:
set NODE_OPTIONS=--openssl-legacy-provider && npm run build
  • Windows PowerShell环境执行:
$env:NODE_OPTIONS="--openssl-legacy-provider"; npm run build

如果要永久修改项目构建脚本,可以直接编辑client/package.json中的scripts配置:

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

之后直接执行npm run build即可正常构建。

方案2:升级react-scripts到v5及以上版本(永久修复)

react-scripts v5.0.0开始已经适配了高版本Node.js的OpenSSL规则,升级依赖即可解决:
在client目录下执行:

npm install react-scripts@latest

如果出现peer依赖冲突,可以添加参数安装:

npm install react-scripts@latest --legacy-peer-deps

安装完成后重新执行npm run build即可。

方案3:降级Node.js到v16 LTS版本

Node.js 16 LTS版本使用的是旧版OpenSSL,不会触发该兼容性问题,如果你用nvm管理Node版本,直接执行:

nvm install 16
nvm use 16

切换版本后重新构建即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 00:24:02