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

如何将基于Node.js v16构建的React v17项目升级到Node.js v18?

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

这个错误是因为Node.js v18默认启用了OpenSSL 3.0,旧版本的webpack和react-scripts依赖的哈希算法被OpenSSL 3.0弃用导致的。不用改动项目依赖,直接通过以下方法修复:

临时启动方案(每次启动前执行)

根据你的操作系统选择对应的命令:

  • Windows(命令提示符cmd):
    set NODE_OPTIONS=--openssl-legacy-provider && npm start
    
  • Windows(PowerShell):
    $env:NODE_OPTIONS="--openssl-legacy-provider"; npm start
    
  • macOS/Linux:
    NODE_OPTIONS=--openssl-legacy-provider npm start
    

永久修改方案(修改package.json,无需每次手动设置)

打开项目根目录的package.json文件,找到scripts字段,给start、build等命令添加环境变量:

Windows系统

修改后的scripts示例:

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

macOS/Linux系统

修改后的scripts示例:

"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"
}

修改完成后,直接执行npm start就能正常启动项目,全程无需改动任何依赖包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 06:30:30