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

React项目启动遇OpenSSL初始化错误求助(Node.js v17.0.1)

解决Node.js v17+ React项目启动时的ERR_OSSL_EVP_UNSUPPORTED错误

这个错误我之前升级Node到17版本后也踩过坑,本质是Node.js 17开始默认切换到了OpenSSL 3.0,而React项目里的旧构建工具(比如react-scripts v4及以下)还没适配OpenSSL 3.0的新加密算法,导致初始化失败。给你几个实用的解决办法:

临时快速解决

直接在启动命令前加环境变量,强制使用旧版OpenSSL兼容模式:

  • 用npm启动的话:
    NODE_OPTIONS=--openssl-legacy-provider npm start
    
  • 用yarn启动的话:
    NODE_OPTIONS=--openssl-legacy-provider yarn start
    
  • Windows系统(cmd终端)需要换写法:
    set NODE_OPTIONS=--openssl-legacy-provider && npm start
    

永久配置到项目

修改项目根目录的package.json启动脚本,把环境变量整合进去,以后启动不用手动加:

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

Windows用户的脚本要调整成这样:

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

降级Node.js版本

如果不想折腾环境变量,也可以把Node.js降到16.x LTS版本——这个版本还是用的OpenSSL 1.1.1,完全不会有这个兼容性问题。用nvm(Node版本管理器)就能快速切换:

# 安装16.x版本
nvm install 16
# 切换到16版本
nvm use 16

另外,要是你的react-scripts版本比较旧,也可以尝试升级到v5+,新版本已经修复了这个兼容问题,升级命令:

npm install react-scripts@latest

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 16:45:29