node ---- 解决错误【Error: error:0308010C:digital envelope routines::unsupported】
1. 报错
在 Node.js 18.18.0 的版本中,遇到以下错误:
this[kHandle] = new _Hash(algorithm, xofLen);^
Error: error:0308010C:digital envelope routines::unsupported
这个错误通常发生在运行项目或构建时,尤其是在使用 Webpack、Vite 或其他构建工具时。
2. 报错截图

3. 错误原因
该错误的根本原因是 Node.js 17+ 默认使用了 OpenSSL 3.0,而 OpenSSL 3.0 移除了对一些旧版加密算法(如 MD4 、 MD5 等)的支持。如果你的项目或依赖库中使用了这些旧版算法,就会触发此错误。
4. 解决方案一:临时解决方案:启用旧版 OpenSSL 提供程序
通过设置环境变量 NODE_OPTIONS ,可以启用旧版 OpenSSL 提供程序,从而解决兼容性问题。
4.1 Linux/MacOS
export NODE_OPTIONS=--openssl-legacy-provider
4.2 Windows
set NODE_OPTIONS=--openssl-legacy-provider
4.3 在 package.json 中设置
如果你希望在运行脚本时自动应用此设置,可以修改 package.json :
"scripts": {"dev:h5:set": "SET NODE_OPTIONS=--openssl-legacy-provider && npm run build:h5 -- --watch","dev:h5:export": "export NODE_OPTIONS=--openssl-legacy-provider && npm run build:h5 -- --watch"
}
5. 解决方案二:降级 Node.js 版本
如果你的项目对 Node.js 版本要求不高,可以降级到 Node.js 16 或更低版本,因为这些版本默认使用 OpenSSL 1.1.1,不会触发此错误。
- 使用 nvm 切换 Node.js 版本:
nvm install 16
nvm use 16
6. 解决方案三:更新项目依赖
检查项目中是否有依赖库使用了旧版加密算法,并尝试更新这些依赖库到最新版本。通常,新版本会修复与 OpenSSL 3.0 的兼容性问题。
7. 解决方案四:修改 Webpack 配置
如果你使用的是 Webpack,可以通过修改配置来避免使用旧版加密算法:
module.exports = {output: {hashFunction: 'sha256', // 使用 SHA-256 替代 MD5},
};
8. 注意事项
- 临时解决方案的风险 : --openssl-legacy-provider 是一个临时解决方案,旧版 OpenSSL 提供程序可能存在安全风险,建议仅在开发环境中使用。
- 生产环境 :在生产环境中,应尽量避免使用临时解决方案,而是通过更新依赖或降级 Node.js 版本来解决问题。
- 长期解决方案 :建议尽快更新项目或依赖库,避免使用旧版加密算法。
9. Node.js 版本
由于使用的是 taro 3.6.7 框架,所以在本地开发时,存在 node 的版本要求,因此不对版本降级处理。

10. 本地使用临时方案成功解决

11. 总结
错误是由于 Node.js 17+ 默认使用 OpenSSL 3.0 导致的。通过启用旧版 OpenSSL 提供程序、降级 Node.js 版本或更新项目依赖,可以解决此问题。在开发环境中,可以使用临时解决方案快速修复问题,但在生产环境中,建议采用更安全的长期解决方案。
相关文章:
node ---- 解决错误【Error: error:0308010C:digital envelope routines::unsupported】
1. 报错 在 Node.js 18.18.0 的版本中,遇到以下错误: this[kHandle] new _Hash(algorithm, xofLen);^ Error: error:0308010C:digital envelope routines::unsupported这个错误通常发生在运行项目或构建时,尤其是在使用 Webpack、Vite 或其他…...
蓝桥杯——走迷宫问题(BFS)
这是一个经典的BFS算法 1. BFS算法保证最短路径 核心机制:广度优先搜索按层遍历所有可能的路径,首次到达终点的路径长度即为最短步数。这是BFS的核心优势。队列的作用:通过队列按先进先出的顺序处理节点,确保每一步探索的都是当…...
详解 Redis repl_backlog_buffer(如何判断增量同步)
一、repl_backlog_buffer 复制积压缓冲区(Replication Backlog Buffer) 是一个环形内存区域(Ring Buffer),用于临时保存主节点最近写入的写命令,以支持从节点断线重连后的增量同步。 1.1 三个复制偏移量 …...
服务器虚拟化技术深度解析:医药流通行业IT架构优化指南
一、服务器虚拟化的定义与原理 (一)技术定义:从物理到虚拟的资源重构 服务器虚拟化是通过软件层(Hypervisor)将物理服务器的CPU、内存、存储、网络等硬件资源抽象为逻辑资源池,分割成多个相互隔离的虚拟机…...
使用PyTorch实现ResNet:从残差块到完整模型训练
ResNet(残差网络)是深度学习中的经典模型,通过引入残差连接解决了深层网络训练中的梯度消失问题。本文将从残差块的定义开始,逐步实现一个ResNet模型,并在Fashion MNIST数据集上进行训练和测试。 1. 残差块(…...
Scala相关知识学习总结5
1、多维数组 定义: val arr Array.ofDim[Double](3,4) 表示二维数组中有三个一维数组,每个一维数组有四个元素。 2、列表 List 不可变 List:默认不可变,可创建有序且可重复的列表,可使用:从右向左增加数据…...
Day1:前端项目uni-app壁纸实战
uni-app官网下载HBuilder。 uni-app快速上手 | uni-app官网 点击HBuilder 安装 新建项目 工具——插件安装 安装uni-app(vue3) 我们先来准备一下: 先在wallpaper下新建目录 我已经建过了 同样,再在common下建images和style目录&…...
光谱相机的光谱数据采集原理
光谱相机的光谱数据采集原理基于分光技术和光电信号转换,通过将入射光按波长分解并记录各波段的强度信息,最终生成包含空间和光谱维度的数据立方体。以下是详细原理分解: 1. 分光技术:将复合光分解为单色光 光谱相机…...
《算法笔记》10.3小节——图算法专题->图的遍历 问题 A: 第一题
题目描述 该题的目的是要你统计图的连通分支数。 输入 每个输入文件包含若干行,每行两个整数i,j,表示节点i和j之间存在一条边。 输出 输出每个图的联通分支数。 样例输入 1 4 4 3 5 5样例输出 2 分析: 由于题目没给出范围࿰…...
python中的{}
注意,如果要创建空集合,只能使用 set() 函数实现。因为直接使用一对 {},Python 解释器会将其视为一个空字典。 Python中集合set和字典dict的用法区别_python创建set变量和dict区别-CSDN博客...
宏碁笔记本电脑擎7PRO搭载的 NVIDIA RTX 5080 显卡安装pytorch
宏碁笔记本电脑擎7PRO搭载的 NVIDIA RTX 5080 显卡是一款高性能移动 GPU,基于 NVIDIA 最新的 Blackwell 架构设计,通过修正架构(Blackwell)、显存类型与带宽(GDDR7、960GB/s)、Tensor Core 与 RT Core 全面…...
html+css+js 实现一个贪吃蛇小游戏
目录 游戏简介 游戏功能与特点 如何玩转贪吃蛇 游戏设计与实现 HTML结构 JavaScript核心实现 代码结构: 效果 关于“其他游戏” 游戏简介 贪吃蛇是一款经典的单人小游戏,玩家通过控制蛇的移动,吃掉食物来增加长度,避免撞…...
淘宝按图搜索商品(拍立淘)API接口解析
以下是关于淘宝按图搜索商品(拍立淘)API的深度解析指南,结合官方文档和开发者经验整理,包含调用方法、参数详解、返回结果解析及常见问题处理: 一、API核心接口说明 1. 接口名称 官方接口:taobao.image.…...
Python爬虫生成CSV文件的完整流程
引言 在当今数据驱动的时代,网络爬虫已成为获取互联网数据的重要工具。Python凭借其丰富的库生态系统和简洁的语法,成为了爬虫开发的首选语言。本文将详细介绍使用Python爬虫从网页抓取数据并生成CSV文件的完整流程,包括环境准备、网页请求、…...
21.OpenCV获取图像轮廓信息
OpenCV获取图像轮廓信息 在计算机视觉领域,识别和分析图像中的对象形状是一项基本任务。OpenCV 库提供了一个强大的工具——轮廓检测(Contour Detection),它能够帮助我们精确地定位对象的边界。这篇博文将带你入门 OpenCV 的轮廓…...
医学图像分割效率大幅提升!U-Net架构升级,助力精度提升5%!
在医学图像分割领域,U-Net模型及其变体的创新应用正在带来显著的性能提升和效率优化。最新研究显示,通过引入结构化状态空间模型(SSM)和轻量级LSTM(xLSTM)等技术,VMAXL-UNet模型在多个医学图像数…...
智能设备运行监控系统
在工业 4.0 与智能制造浪潮下,设备运行效率与稳定性成为企业竞争力的核心要素。然而,传统设备管理模式面临数据采集分散、状态分析滞后、维护成本高昂等痛点。为破解这些难题,设备运行监控系统应运而生,通过融合智能传感、5G 通信…...
详细分析单例模式
目录 1.单例模式的定义 2.单例模式的实现方式 1.饿汉模式 2.懒汉模式 (1)线程不安全的问题怎么解决? (2)直接对整个getInstance方法代码块加锁吗? (3)那对if语句加锁不就行了吗…...
Windwos的DNS解析命令nslookup
nslookup 解析dns的命令 有两种使用方式,交互式&命令行方式。 交互式 C:\Users\Administrator>nslookup 默认服务器: UnKnown Address: fe80::52f7:edff:fe28:35de> www.baidu.com 服务器: UnKnown Address: fe80::52f7:edff:fe28:35de非权威应答:…...
服务器报错:xxx/libc.so.6: version `GLIBC_2.32‘ not found
/lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.32 not found (required by ./aima-sim-app-main) 解决思路 根据错误信息,您的应用程序 aima-sim-app-main 和 libmujoco.so.3.1.6 库依赖于较新的 GNU C Library (glibc) 版本(如 GLIBC_2.32, GLIBC…...
Flutter之页面布局一
目录: 1、页面布局一2、无状态组件StatelessWidget和有状态组件StatefulWidget2.1、无状态组件示例2.2、有状态组件示例2.3、在 widget 之间共享状态1、使用 widget 构造函数2、使用 InheritedWidget3、使用回调 3、布局小组件3.1、布置单个 Widget3.2、容器3.3、垂…...
架构思维: 数据一致性的两种场景深度解读
文章目录 Pre案例数据一致性问题的两种场景第一种场景:实时数据不一致不要紧,保证数据最终一致性就行第二种场景:必须保证实时一致性 最终一致性方案实时一致性方案TCC 模式Seata 中 AT 模式的自动回滚一阶段二阶段-回滚二阶段-提交 Pre 架构…...
大数据knox网关API
我们过去访问大数据组件,如sparkui,hdfs的页面,以及yarn上面看信息是很麻烦的一件事。要记每个端口号,比如50070,8090,8088,4007,如果换到另一个集群,不同版本࿰…...
UI测试(2)
1、HTML 是用来描述网页的一种语言。 指的是超文本标记语言 (Hyper Text Markup Language) ,HTML 不是一种编程语言,而是一种标记语言 (markup language) 负责定义页面呈现的内容:标签语言:<标签名>标签值<标签名>&am…...
【Tauri2】015——前端的事件、方法和invoke函数
目录 前言 正文 准备 关键url 获取所有命令 切换主题set_theme 设置大小 获得版本version 名字name 监听窗口移动 前言 【Tauri2】005——tauri::command属性与invoke函数-CSDN博客https://blog.csdn.net/qq_63401240/article/details/146581991?spm1001.2014.3001.…...
密码学基础——分组密码的运行模式
前面的文章中文我们已经知道了分组密码是一种对称密钥密码体制,其工作原理可以概括为将明文消息分割成固定长度的分组,然后对每个分组分别进行加密处理。 下面介绍分组密码的运行模式 1.电码本模式(ECB) 2.密码分组链接模式&…...
Android SELinux权限使用
Android SELinux权限使用 一、SELinux开关 adb在线修改seLinux(也可以改配置文件彻底关闭) $ getenforce; //获取当前seLinux状态,Enforcing(表示已打开),Permissive(表示已关闭) $ setenforce 1; //打开seLinux $ setenforce 0; //关闭seLinux二、命令查看sel…...
Python----计算机视觉处理(Opencv:道路检测完整版:透视变换,提取车道线,车道线拟合,车道线显示,)
Python----计算机视觉处理(Opencv:道路检测之道路透视变换) Python----计算机视觉处理(Opencv:道路检测之提取车道线) Python----计算机视觉处理(Opencv:道路检测之车道线拟合) Python----计算机视觉处理࿰…...
基于飞桨框架3.0本地DeepSeek-R1蒸馏版部署实战
深度学习框架与大模型技术的融合正推动人工智能应用的新一轮变革。百度飞桨(PaddlePaddle)作为国内首个自主研发、开源开放的深度学习平台,近期推出的3.0版本针对大模型时代的开发痛点进行了系统性革新。其核心创新包括“动静统一自动并行”&…...
docker初始环境搭建(docker、Docker Compose、portainer)
docker、Docker Compose和portainer的安装部署、使用 docker、Docker Compose和portainer的安装部署、使用一.安装docker1.失败的做法2.首先卸载旧版本(没安装则下一步)3.配置下载的yum来源,不然yum search搜不到4.安装启动docker5.替换国内源…...
