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

React项目npm start报digital envelope routines::unsupported错误

问题根因

Error: error:0308010C:digital envelope routines::unsupported(错误码ERR_OSSL_EVP_UNSUPPORTED)和你贴的业务组件、根渲染HTML、入口jsx代码、web.config配置都没有关系,核心触发逻辑是:

  • 你本地运行的Node.js版本为17.0.0及以上,这类版本内置OpenSSL 3.0,默认禁用了MD4等老旧加密算法
  • 你下载的预制React项目使用的是低版本构建链(webpack 4.x、或5.54.0之前的webpack5、或5.0.0之前的react-scripts),其createHash逻辑依赖被禁用的MD4算法,直接触发兼容报错
可落地解决方案

快速修复(1分钟生效,不用改依赖版本)

启动项目前先注入环境变量,临时开启OpenSSL对旧算法的兼容支持,不同终端执行的命令如下:

  • Windows cmd终端:
set NODE_OPTIONS=--openssl-legacy-provider
npm start
  • Windows PowerShell终端:
$env:NODE_OPTIONS = "--openssl-legacy-provider"
npm start
  • Mac/Linux终端:
NODE_OPTIONS=--openssl-legacy-provider npm start

如果不想每次启动都手动敲环境变量,直接修改package.json里的scripts配置即可,跨系统兼容的改法:

  1. 先执行npm i cross-env -D安装跨端环境变量工具
  2. 把原来的start脚本从类似"start": "react-scripts start"改成"start": "cross-env NODE_OPTIONS=--openssl-legacy-provider react-scripts start"
  3. 后续直接执行npm start即可正常启动,不需要额外输命令

长期稳定修复(无环境变量依赖)

选任意一种操作即可彻底解决兼容问题:

  • 把本地Node.js版本降级到16.x LTS版本,这是和旧版React构建链适配度最高的长期支持版本,不会触发OpenSSL相关兼容问题
  • 升级项目构建依赖:将react-scripts升级到5.0.0及以上版本,或直接把webpack升级到5.54.0及以上版本,新版本构建链已经原生适配OpenSSL 3.0的加密规则,不需要额外配置参数
排查误区说明

你之前排查web.config文件属于方向错误,这个报错是Node.js运行环境和构建工具的版本兼容问题,和业务代码、Web服务配置没有关联,不需要修改你提到的天气组件、auto.jsx自动补全组件、widgets.jsx入口文件、根HTML文件的任何代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 23:15:11