news 2026/5/1 6:29:33

FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read_file_context:68:3) { open

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read_file_context:68:3) { open

报错信息:FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read_file_context:68:3) {
opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
library: 'digital envelope routines',
reason: 'unsupported',
code: 'ERR_OSSL_EVP_UNSUPPORTED'

错误核心原因

该报错是Node.js 版本过高(v17+)与 OpenSSL 3.0 兼容性问题:Node.js v17 及以上版本将 OpenSSL 升级到 3.0,废弃了 MD5、SHA1 等旧加密算法,而若依前端(ruoyi-ui)依赖的 Webpack/Vue-CLI 等构建工具仍使用这些算法,导致加密初始化失败(digital envelope routines::initialization error)。

二、若依前端(ruoyi-ui)针对性解决方法

方法 1:临时解决(快速生效,无需改 Node 版本)

通过添加环境变量兼容旧加密算法,修改若依前端的启动 / 打包脚本,适配不同系统:

步骤 1:定位若依前端脚本文件

打开ruoyi-ui/package.json,找到scripts节点(包含dev/build:prod等脚本):

json

"scripts": { "dev": "vue-cli-service serve", "build:prod": "vue-cli-service build", "lint": "eslint --ext .js,.vue src" }
步骤 2:修改脚本(按系统适配)
  • Windows 系统(cmd/powershell):在脚本前添加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", "lint": "eslint --ext .js,.vue src" }
  • Linux/macOS 系统:在脚本前添加export NODE_OPTIONS=--openssl-legacy-provider &&

    "scripts": { "dev": "export NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve", "build:prod": "export NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build", "lint": "eslint --ext .js,.vue src" }
步骤 3:重启前端服务

删除ruoyi-ui/node_modules/.cache缓存文件夹,重新执行:

bash

运行

npm run dev

此时前端可正常启动,无加密算法报错。

方法 2:永久解决(推荐,适配 Node LTS 版本)

降级 Node.js 到v16.x(LTS 长期支持版)(若依前端对该版本兼容性最佳):

  1. 卸载当前高版本 Node.js(如 v17/v18/v19);
  2. 下载 Node.js v16.x 安装包:官网地址:https://nodejs.org/dist/latest-v16.x/(选择对应系统版本);
  3. 安装后验证版本:
    node -v # 显示 v16.xx.xx 即为成功
  4. 重新安装若依前端依赖(可选):
    cd ruoyi-ui rm -rf node_modules package-lock.json # 清空旧依赖 npm install # 重新安装依赖 npm run dev # 启动前端,无需修改脚本
方法 3:补充(若用 nvm 管理 Node 版本,更便捷)

若安装了 nvm(Node 版本管理器),可一键切换版本:

# 安装v16.20.2(最新LTS) nvm install 16.20.2 # 切换到v16版本 nvm use 16.20.2 # 验证版本 node -v

三、关键注意事项

  1. 若依前端的node-sass依赖对 Node 版本敏感,v16.x 可完美兼容node-sass@4.14.x(若依默认版本);
  2. 避免使用 Node.js v17+ 运行若依前端,除非全部依赖升级到支持 OpenSSL 3.0 的版本(成本高,不推荐);
  3. 修改package.json脚本后,若仍报错,需清空node_modulespackage-lock.json重新安装依赖。

四、验证效果

修改后执行npm run dev,若终端显示:

App running at: - Local: http://localhost:80/index.html - Network: http://192.168.x.x:80/index.html

且无ERR_OSSL_EVP_UNSUPPORTED报错,说明解决成功。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/22 5:42:00

CompareM基因组比较工具:10个简单步骤快速掌握生物信息学分析

CompareM基因组比较工具:10个简单步骤快速掌握生物信息学分析 【免费下载链接】CompareM 项目地址: https://gitcode.com/gh_mirrors/co/CompareM 想要轻松进行基因组比较分析吗?CompareM是一款专为大规模比较基因组学设计的强大工具包&#xff…

作者头像 李华
网站建设 2026/4/23 17:07:25

苹果风格鼠标指针:让你的桌面焕然一新的简单方法

苹果风格鼠标指针:让你的桌面焕然一新的简单方法 【免费下载链接】apple_cursor Free & Open source macOS Cursors. 项目地址: https://gitcode.com/gh_mirrors/ap/apple_cursor 厌倦了千篇一律的系统默认鼠标指针?Apple Cursor开源项目为你…

作者头像 李华
网站建设 2026/4/16 12:52:54

Illustrator脚本自动化实战:告别重复操作的设计效率革命

Illustrator脚本自动化实战:告别重复操作的设计效率革命 【免费下载链接】illustrator-scripts Some powerfull JSX scripts for extending Adobe Illustrator 项目地址: https://gitcode.com/gh_mirrors/ill/illustrator-scripts 还在为Illustrator中那些繁…

作者头像 李华
网站建设 2026/4/18 13:53:06

如何在3分钟内完成iOS系统权限获取?TrollInstallerX实战部署全解析

还在为复杂的iOS系统操作流程而头疼吗?TrollInstallerX的出现彻底改变了游戏规则,这款专为iOS 14.0-16.6.1系统设计的权限获取工具,让系统级操作变得触手可及。今天我将分享一套经过实战验证的快速部署方案,帮助你在极短时间内完成…

作者头像 李华
网站建设 2026/4/30 5:12:10

Waydroid完整使用指南:在Linux系统上运行Android应用

Waydroid是一个基于容器技术的开源项目,它能够在标准的GNU/Linux系统上启动完整的Android系统环境。通过利用Linux命名空间技术,Waydroid为Linux桌面用户提供了运行Android应用程序的能力,无需使用传统的虚拟机方案。 【免费下载链接】waydro…

作者头像 李华
网站建设 2026/4/20 15:29:33

3分钟搞定PDF生成与预览:jsPDF+PDF.js全攻略 [特殊字符]

3分钟搞定PDF生成与预览:jsPDFPDF.js全攻略 🚀 【免费下载链接】jsPDF 项目地址: https://gitcode.com/gh_mirrors/jsp/jsPDF 还在为PDF文件处理而烦恼吗?本文将带你快速掌握前端PDF生成与预览的完美组合——jsPDF与PDF.js。无需复杂…

作者头像 李华