在WebStorm遇到Error: error:0308010C:digital envelope routines::unsupported报错时的解决方案

news/2024/10/27 19:39:55/

作者:CSDN-PleaSure乐事

欢迎大家阅读我的博客 希望大家喜欢

使用环境:WebStorm

目录

介绍

解决

分析

方法一:设置环境变量

使用WebStorm

使用其他编译器

方法二:使用nvm切换nodejs版本

方法三:更新依赖版本


介绍

在初遇AntDesignPro的时候,可能我们都会遇到该问题:

Error: error:0308010C:digital envelope routines::unsupported at new Hash (node:internal/crypto/hash:79:19) at Object.createHash (node:crypto:139:10)

也就是标题当中提到的报错。

那我们应该怎么解决呢?

解决

分析

错误 Error: error:0308010C:digital envelope routines::unsupported 通常是由于 Node.js 的 OpenSSL 版本不兼容或配置问题导致的。这个错误通常出现在使用某些加密功能时,特别是在 Node.js 17 及以上版本中。

方法一:设置环境变量

遇到该困难,我们可以通过设置 NODE_OPTIONS 环境变量来解决这个问题。

使用WebStorm

短期解决方法-使用终端直接配置

首先,在WebStorm中,点击底部工具栏中的 "Terminal" 标签,或者通过菜单 View > Tool Windows > Terminal 打开终端。

然后输入以下指令:

export NODE_OPTIONS=--openssl-legacy-provider

然后在终端中输入运行代码即可解决:

npm run start
长期解决方法-直接在运行配置中设置
1.打开运行配置

点击顶部菜单中的 Run > Edit Configurations...

2.选择或创建一个新的运行配置:
如果你已经有 npm 或 Node.js 的运行配置,选择它。如果没有,可以点击左上角的 + 按钮,选择 npm 或 Node.js 创建一个新的运行配置。 

3.添加环境变量:

在配置页面中,找到 Environment variables 字段。输入 NODE_OPTIONS=--openssl-legacy-provider,然后按回车键。(一般跟在Enviroment后面)

4.保存配置:

点击 Apply 和 OK 保存配置。

5.启动项目

使用刚刚配置的运行配置来启动项目。可以通过点击顶部工具栏中的绿色运行按钮,或者通过菜单 Run > Run 'your-config-name' 来启动。

若显示以下样式,则表示已经完成配置。

这个时候如果遇到打开的端口不是8000,如果用到的是8001、8002等端口,那么表示你的8000端口被占用了,顺延到了下一个端口。可以将整个项目关闭后重启,这样可以解决问题。

(重启可以解决99%的问题)

使用终端

如果知识想使用终端配置,那可以参照以下方法:

1.设置环境变量

设置一个临时的环境变量 NODE_OPTIONS,使其包含 --openssl-legacy-provider 选项。

export NODE_OPTIONS=--openssl-legacy-provider
2.运行项目
npm run start

方法二:使用nvm切换nodejs版本

如果使用的是 nvm,可以尝试切换到一个较旧的 Node.js 版本,因为较新的版本可能会有兼容性问题。例如,切换到 Node.js 16.x:

nvm install 16
nvm use 16

然后再次运行项目即可:

npm run start

方法三:更新依赖版本

我们应该确保所有依赖项都是最新的,并且与当前的 Node.js 版本兼容,可以尝试更新 @umijs/preset-built-in 和其他相关依赖项:

npm update @umijs/preset-built-in
npm update

作者:CSDN-PleaSure乐事

希望我的博客对您有帮助,也希望在对您有帮助时您可以为我留下点赞收藏与关注,这对我真的很重要,谢谢!


http://www.ppmy.cn/news/1542411.html

相关文章

gateway 整合 spring security oauth2

微服务分布式认证授权方案 在分布式授权系统中,授权服务要独立成一个模块做统一授权,无论客户端是浏览器,app或者第三方,都会在授权服务中获取权限,并通过网关访问资源 OAuth2的四种授权模式 授权码模式 授权服务器将授…

短剧cps小程序开发,源码独立搭建部署,正版短剧小说授权,支持抖音,微信,快手多端分销

短剧CPS小程序是什么? 用来分销推广各平台短剧的系统,系统已对接好他人短剧平台片源,利用小程序获取素材分销链接进行广泛传播,推广给用户能够在第三方小程序里充值观看短剧。 短剧分销系统功能 付费观看:跳转第三方…

集成测试怎么做?

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 任何产品想要长期保持高质量运行,集成测试正是实现这一目标必不可少的工具。 本文重点介绍集成测试实现的流程,而非测试工具本身。我们的…

RabbitMQ是一个开源的消息代理和队列服务器

RabbitMQ是一个开源的消息代理和队列服务器,它基于AMQP(Advanced Message Queuing Protocol,高级消息队列协议)协议实现,同时也支持其他消息协议如STOMP、MQTT等。作为一个可靠的消息传递服务,RabbitMQ在分…

HTML+JavaScript案例分享: 打造经典俄罗斯方块,详解实现全过程

在本文中,我们将深入探讨如何使用 JavaScript 实现经典的俄罗斯方块游戏。俄罗斯方块是一款广为人知的益智游戏,通过操纵各种形状的方块,使其在游戏区域内排列整齐,以消除完整的行来获得分数。 效果图如下: 一、游戏界面与布局 我们首先使用 HTML 和 CSS 来创建游戏的界面…

Android Framework定制sim卡插入解锁pin码的界面

文章目录 手机设置SIM卡pin码一、安卓手机二、苹果手机 Android Framework中SIM卡pin码代码定位pin码提示文本位置定位pin码java代码位置 定制pin码framework窗口数字按钮 手机设置SIM卡pin码 设置 SIM 卡 PIN 码可以提高手机的安全性,防止他人在未经授权的情况下使…

MySQL--基本介绍

一.数据库前言 1.数据库的相关介绍 关系数据库管理系统(Relational Database Management System:RDBMS)是指包括相互联系的逻辑组织和存取这些数据的一套程序 (数据库管理系统软件)。关系数据库管理系统就是管理关系数据库,并将数…

血量更新逻辑的实现

来实现一下减血的逻辑 首先我们来看一下,我们再HealthBar当中的填充,填充的时候,我们会调用FillAmount这个变量, 学习调用组件,我们可以选择右上角的问号,跳转到代码手册当中,快速了解这些功能…