当前位置: 首页 > news >正文

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

作者: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.lryc.cn/news/468992.html

相关文章:

  • 数据库产品中SQL注入防护功能应该包含哪些功能
  • Ribbon客户端负载均衡策略测试及其改进
  • linux网络编程5——Posix API和网络协议栈,使用TCP实现P2P通信
  • 低代码平台中的功能驱动开发:模块化与领域设计
  • HTTP和HTTPS基本概念,主要区别,应用场景
  • node.js使用Sequelize ORM操作数据库
  • STM32-Modbus协议(一文通)
  • 100. 不同方向的投影视图
  • Appium中的api(三)
  • 踩坑:关于使用ceph pg repair引发的业务阻塞
  • 瞬间升级!电子文档华丽变身在线题库,效率翻倍✨
  • 如何动态改变本地的ip
  • Spring Boot框架在中小企业设备管理中的创新应用
  • Ceph入门到精通-Osd db扩容
  • windows msvc2017 x64编译AWS SDK CPP库
  • 铜业机器人剥片 - SNK施努卡
  • 非接触式竖向位移、水平位移视频实时在线监测的设备分类及选型
  • Svelte 5 正式发布:新一代前端框架!
  • 85.【C语言】数据结构之顺序表的中间插入和删除及遍历查找
  • 触觉智能Purple Pi OH鸿蒙开发板成功适配OpenHarmony5.0 Release,开启新征程!
  • 分布式解决方案---分布式ID
  • httpd服务
  • Linux系统安装Redis详细操作步骤(二进制发布包安装方式)
  • Jenkins和Gitlab整合构建CI/CD流水线
  • 14 C语言中的关键字
  • (11)(2.1.7) FETtec OneWire ESCs(一)
  • Python 异步编程:使用 `asyncio.to_thread` 和 `asyncio.Queue` 处理任务队列
  • 【问题解决】Flink在linux上运行成功但是无法访问webUI界面
  • 【问题解决】pnpm : 无法将“pnpm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。
  • 微信网页授权回调地址放多个参数的方法