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

报错error:0308010C:digital envelope routines::unsupported解决方案

目录

项目运行npm run serve报错:

原因分析

解决方案:

1. 临时解决方案:添加环境变量兼容旧算法

2. 长期解决方案:升级依赖到兼容版本

3. 降级 Node.js 版本


项目运行npm run serve报错:

(以前能运行的,现在又不行了)

 这个错误 (error:0308010C:digital envelope routines::unsupported) 是由于 Node.js 版本与项目依赖的加密算法不兼容 导致的,常见于使用较新 Node.js(v17+)运行旧版 Webpack。

原因分析

Node.js v17+ 升级了内置的 OpenSSL 到 3.0 版本,废弃了一些旧的加密算法(如 MD4),而旧版 Webpack(4.x)及部分依赖仍在使用这些被废弃的算法,导致运行时报错。

解决方案:

1. 临时解决方案:添加环境变量兼容旧算法

在启动命令中添加 NODE_OPTIONS=--openssl-legacy-provider强制 Node.js 使用旧版加密算法兼容模式。
修改 package.json 中的 serve 命令,根据操作系统添加环境变量:

// package.json
"scripts": {// Windows 系统(CMD/PowerShell)"serve": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",// macOS/Linux 系统(bash/zsh)// "serve": "export NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve"
}

再次执行 npm run serve,此时会以兼容模式启动,错误通常会消失。

2. 长期解决方案:升级依赖到兼容版本

如果项目允许升级依赖以支持新版 Node.js(推荐):

  • 升级 Vue CLI 到 5.x(默认使用 Webpack 5,已兼容 OpenSSL 3.0):

    npm install -g @vue/cli@latest  # 全局升级 Vue CLI
    vue upgrade  # 升级项目依赖(按提示操作)
    
  • 手动升级 Webpack 及相关依赖(如果不升级 Vue CLI):
    Webpack 5 已修复此问题,可升级项目中的 Webpack 到 5.x,并同步升级 vue-loadercss-loader 等相关依赖(需注意版本兼容性)。

3. 降级 Node.js 版本

我一般用的这个方法,版本控制即可,防止一些其他包的问题

如果暂时无法升级依赖,可将 Node.js 降级到 v16.x 及以下版本(LTS 版本如 v16.20.2),这些版本使用 OpenSSL 1.1.x,不会触发此错误。

  • 下载地址:Node.js 历史版本
  • 推荐使用 nvm(Node 版本管理器)快速切换版本。

nvm的使用我就不多说了,哈哈,给你上面的一个图,自己看了。

运行成功:

-----------完 ------------

http://www.dtcms.com/a/291915.html

相关文章:

  • 《Webpack热更新瓶颈突破:全链路优化指南》
  • Android KTX:让Kotlin开发更简洁高效的利器
  • 闲庭信步使用图像验证平台加速FPGA的开发:第二十九课——车牌识别的FPGA实现(1)车牌定位的预处理
  • 边缘计算网关赋能智慧农业:物联网边缘计算的创新应用与实践
  • vue apk返回键不好使
  • git push新版问题解决
  • ArrayList与顺序表
  • 【C++】继承和多态扩展学习
  • 面向对象的三大特征
  • Go 语言中,创建结构体实例对象有几种常用方式
  • 大数学习笔记整理
  • Leetcode—692. 前K个高频单词【中等】(桶排序)
  • 从感知到决策:虚拟仿真系统与视觉算法融合下的多路RTSP视频接入技术探究
  • freertos关键函数理解 uxListRemove
  • 基于 Spring Batch 和 XXL-Job 的批处理任务实现
  • linux c语言进阶 - 进程,通信方式
  • PHICOMM(斐讯)N1盒子 - Armbian25.05(Debian 12)刷入U盘/EMMC
  • Unity之C# 脚本与Unity Visual Scripting 交互
  • Java 网络编程详解:从基础到实战,彻底掌握 TCP/UDP、Socket、HTTP 网络通信
  • 【数据可视化-70】奶茶店销量数据可视化:打造炫酷黑金风格的可视化大屏
  • Vue + WebSocket 实时数据可视化实战:多源融合与模拟数据双模式设计
  • AI创作系列第22篇:前端缓存与更新机制重构 - 表情包系统的全面升级
  • 贪心算法Day4学习心得
  • 当直播间告别“真人时代”:AI数字人重构商业新秩序
  • haproxy七层代理新手入门详解
  • 零事故网站重构:11步标准化流程与风险管理指南
  • 第13天 | openGauss逻辑结构:表管理1
  • zabbix“专家坐诊”第295期问答
  • SPI的收发(W25Q64外部flash 和 内部flsah)
  • 小米视觉算法面试30问全景精解