Error: error:0308010C:digital envelope routines::unsupported

ops/2024/11/15 0:34:08/

目录

  • 1、前言
  • 2、详细问题
  • 3、解决方法
    • 3.1、nodejs版本降级
    • 3.2、针对openssl设置环境变量
    • 3.3、在package.json命令里添加设置
  • 4、效果

1、前言

2024年11月某一天,升级了电脑上的nodejs版本:v22.11.0。
本来运行正常的Vue项目,在运行时突然就报错:Error: error:0308010C:digital envelope routines::unsupported

2、详细问题

前端项目启动(npm run dev)和打包时(npm run build:prod)报出如下错误:

PS D:\work\code\html\store-ui> npm run dev                                       > LS@3.8.5 dev
> vue-cli-service serveINFO  Starting development server...
95% emitting CompressionPlugin ERROR  Error: error:0308010C:digital envelope routines::unsupported
Error: error:0308010C:digital envelope routines::unsupportedat new Hash (node:internal/crypto/hash:79:19)at Object.createHash (node:crypto:139:10)at D:\work\code\html\store-ui\node_modules\compression-webpack-plugin\dist\index.js:243:42at CompressionPlugin.compress (D:\work\code\html\store-ui\node_modules\compression-webpack-plugin\dist\index.js:284:9)at D:\work\code\html\store-ui\node_modules\compression-webpack-plugin\dist\index.js:305:12at _next1 (eval at create (D:\work\code\html\store-ui\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:14:17)at eval (eval at create (D:\work\code\html\store-ui\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:33:1)at D:\work\code\html\store-ui\node_modules\copy-webpack-plugin\dist\index.js:91:9

问题重点在【 at new Hash (node:internal/crypto/hash:79:19)
at Object.createHash (node:crypto:139:10)】这两行,创建hash失败。

主要是Node.js 17 引入了对 OpenSSL 3.0 的支持,该版本对于一些 API 进行了重大更改,这可能导致与某些 Node.js 库或依赖项的不兼容。

因此我们可选择将nodejs版本回退到17以下,比如16、13、10等。

3、解决方法

  • nodejs版本降级
  • 针对openssl设置环境变量

3.1、nodejs版本降级

我的电脑当前版本是v22,可以降级到16及以下版本,正好是windows电脑,可以在系统变量里修改nodejs的路径配置(当然也可以使用nvm来切换版本)。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2、针对openssl设置环境变量

windows电脑上,在Idea打开一个Terminal(终端),输入:

 SET NODE_OPTIONS=--openssl-legacy-provider 

$env:NODE_OPTIONS="--openssl-legacy-provider"

3.3、在package.json命令里添加设置

在原有的命令上,增加【SET NODE_OPTIONS=–openssl-legacy-provider 】配置,使用&& 连接

  "scripts": {"dev": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve","build:prod": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build"}

4、效果

最后 npm run serve 重新运行项目即可
在这里插入图片描述


http://www.ppmy.cn/ops/133215.html

相关文章

《ElementPlus 与 ElementUI 差异集合》Icon 图标 More 差异说明

参考 《element plus 使用 icon 图标(两种方式)》使用 icon 升级 Vue2 升级 Vue3 项目时&#xff0c;遇到命名时的实心与空心点差异&#xff01; ElementUI&#xff1a; 实心是 el-icon-more空心是 el-icon-more-outline ElementPlus&#xff1a; 实心是 el-icon-more-fill…

解决:使用EasyExcel导入Excel模板时出现数据导入不进去的问题

解决&#xff1a;使用EasyExcel导入Excel模板时出现数据导入不进去的问题 在Java中&#xff0c;当我们用EasyExcel导入Excel时&#xff0c;可能会出现数据导入不进去的问题。例如&#xff1a; 这种异常等。 问题原因1&#xff1a;这个1代表从第几行开始&#xff0c;你的exce…

Web安全之SQL注入---基础

文章目录 SQL注入简介SQL注入基础SQL注入分类SQL注入流程 SQL注入简介 什么是SQL注入&#xff1f; SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严&#xff0c;攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句&#xff0c;在管理…

数据结构第七章-折半查找(二分查找)

#include<stdio.h> #include<stdlib.h> #include<string.h> #define MAX_SIZE 100 #define OK 1 typedef struct {int key;//关键字域 }ElemType; typedef struct {ElemType* R;int length; }SSTable; //初始化 int Init_SSTable(SSTable* L) {L->R (Ele…

产品如何3D建模?如何根据使用场景选购3D扫描仪?

随着科技的飞速发展&#xff0c;3D模型已从昔日的小众应用转变为各行各业不可或缺的利器。在文博、电商、家居、汽车、建筑及游戏影视等众多领域&#xff0c;3D模型以其直观、真实的视觉体验发挥着至关重要的作用。它不仅使用户能深入了解产品的外观、结构与功能&#xff0c;还…

ArcGIS地理空间平台 manager 任意文件读取漏洞复现

0x01 产品描述&#xff1a; ‌ ArcGIS‌是一个综合的地理空间平台&#xff0c;由Esri开发&#xff0c;旨在为专业人士和组织提供全面的地理信息系统&#xff08;GIS&#xff09;功能。ArcGIS通过集成和连接地理环境中的数据&#xff0c;支持创建、管理、分析、映射和共享…

C语言:编译和链接

目录 1. 翻译环境和运行环境 ​编辑 2. 翻译环境 2.1 预处理&#xff08;预编译&#xff09; 2.2 编译 2.2.1 词法分析&#xff1a; 2.2.2 语法分析 2.2.3 语义分析 2.3 汇编 2.4 链接 3. 运行环境 1. 翻译环境和运行环境 在ANSI C的任何一种实现中&#xff0c;存在两…

Spring Boot集成Access DB实现数据导入和解析

1.什么是Access DB&#xff1f; microsoft office access是由微软发布的关联式 数据库管理系统。它结合了 microsoft jet database engine 和 图形用户界面两项特点&#xff0c;是一种关系数据库工具。它在很多地方得到广泛使用&#xff0c;例如小型企业&#xff0c;大公司的部…