news 2026/7/5 12:42:56

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/7/5 2:49:04

Cursor试用重置完全指南:go-cursor-help工具详解

Cursor试用重置完全指南:go-cursor-help工具详解 【免费下载链接】go-cursor-help 解决Cursor在免费订阅期间出现以下提示的问题: Youve reached your trial request limit. / Too many free trial accounts used on this machine. Please upgrade to pro. We have …

作者头像 李华
网站建设 2026/7/1 22:56:05

Realistic Vision V2.0实战手册:从零开始打造惊艳AI图像

Realistic Vision V2.0实战手册:从零开始打造惊艳AI图像 【免费下载链接】Realistic_Vision_V2.0 项目地址: https://ai.gitcode.com/hf_mirrors/ai-gitcode/Realistic_Vision_V2.0 你是否曾经梦想过拥有一个能够将文字描述转化为逼真图像的AI助手&#xff…

作者头像 李华
网站建设 2026/7/4 10:54:48

【读书笔记】《论扯淡》

《论扯淡》书籍解读 书籍基本信息 《论扯淡》(原著英文名:On Bullshit)是美国哲学家哈里G法兰克福(Harry G. Frankfurt)的代表作。该书源于他1986年发表的一篇论文,2005年由普林斯顿大学出版社以精致小书形…

作者头像 李华
网站建设 2026/6/28 20:41:48

人工智能毕设新颖的题目大全

0 选题推荐 - 大数据篇 毕业设计是大家学习生涯的最重要的里程碑,它不仅是对四年所学知识的综合运用,更是展示个人技术能力和创新思维的重要过程。选择一个合适的毕业设计题目至关重要,它应该既能体现你的专业能力,又能满足实际应…

作者头像 李华
网站建设 2026/7/3 8:14:46

7、5G网络服务质量解析

5G网络服务质量解析 1. 移动网络QoS管理模型的演变 在移动网络的发展历程中,QoS管理模型经历了显著的变化。3GPP在推动前代移动网络发展时,成功地对网络层面的服务质量管理原则和模型进行了标准化,并引入了新的服务质量管理特性。 1.1 3GPP网络QoS管理原则 从高速分组接入…

作者头像 李华