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

创建React Portfolio项目时遭遇ERR_OSSL_EVP_UNSUPPORTED错误的技术咨询

解决Node.js 18环境下React项目启动时的ERR_OSSL_EVP_UNSUPPORTED错误

嘿,这个问题我之前在Node.js 18环境跑旧版create-react-app项目时也踩过坑!本质是Node.js 18默认启用了更严格的OpenSSL算法规范,而你的react-scripts(依赖的webpack版本)还没适配这个变化,导致哈希生成时触发了不支持的算法错误。给你几个实用的解决办法,按需选择:

临时快速修复(适合测试)

直接在启动命令前添加环境变量,强制使用旧版OpenSSL算法:

  • Linux/macOS 终端:
    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
    

永久配置到项目(不用每次输命令)

修改项目根目录下的package.json,把启动、构建命令加上环境变量:

"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用户注意:如果上面的格式不生效,把start命令改成set NODE_OPTIONS=--openssl-legacy-provider && react-scripts start

长期最优解(推荐)

升级react-scripts到最新版本,新版已经适配了Node.js 18+的OpenSSL要求:

npm install react-scripts@latest

如果用yarn的话:

yarn add react-scripts@latest

升级完成后,直接用npm start就能正常启动项目,不需要额外配置环境变量了。

补充说明

Node.js 16及以后版本逐步淘汰了一些旧的OpenSSL哈希算法,Node.js 18更是默认禁用了这些算法。而旧版webpack(被react-scripts依赖)还在使用这些被禁用的算法来生成构建哈希,这就是你遇到这个错误的核心原因。升级依赖或者临时启用旧算法都能解决问题,优先推荐升级依赖哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 17:24:09