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

React项目执行npm start时遇digital envelope routines错误求助

错误根因

这个错误源于Node.js v17及以上版本默认启用OpenSSL 3.0的安全标准,而你的React项目依赖的旧版webpack(或react-scripts)仍在使用OpenSSL 3.0已弃用的哈希算法(如MD4),导致兼容性冲突。

解决建议

以下是几种不同场景的解决方案,按优先级推荐:

1. 升级依赖(根治方案)

react-scripts v5及以上版本已修复该兼容性问题,直接升级即可:

npm install react-scripts@latest

升级完成后重新运行npm start即可,无需额外配置。

2. 修改启动脚本(永久生效)

如果暂时无法升级依赖,可在package.json的scripts中添加环境变量,强制Node.js使用旧版OpenSSL算法:

{
  "scripts": {
    "start": "NODE_OPTIONS=--openssl-legacy-provider react-scripts start",
    "build": "NODE_OPTIONS=--openssl-legacy-provider react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  }
}

注意:Windows系统用户若上述写法报错,可替换为set NODE_OPTIONS=--openssl-legacy-provider && react-scripts start

3. 临时启动(快速测试)

不想修改配置的话,可直接在终端中带环境变量启动项目:

  • Mac/Linux:
    NODE_OPTIONS=--openssl-legacy-provider npm start
    
  • Windows Cmd:
    set NODE_OPTIONS=--openssl-legacy-provider && npm start
    
  • Windows PowerShell:
    $env:NODE_OPTIONS="--openssl-legacy-provider"; npm start
    

4. 降级Node.js版本

如果上述方法都不适用,可将Node.js降级到v16.x及以下版本(该版本默认使用OpenSSL 1.1.1,无此兼容性问题)。推荐用nvm管理版本:

# 安装nvm(若未安装)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
# 安装v16.20.0稳定版
nvm install 16.20.0
# 切换到该版本
nvm use 16.20.0

内容的提问来源于stack exchange,提问作者Emma Bayley-Melendez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 17:33:31