解决前端报错“opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ]”

 更新时间:2026年05月23日 15:11:32   作者:九尾cat  
这篇文章主要介绍了前端报错“opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ]”的相关资料,文中将解决的办法介绍的非常详细,需要的朋友可以参考下

报错“  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ]”

报错信息

前端启动项目报错,报错信息如下:

$ yarn start
yarn run v1.22.21
$ cross-env UMI_ENV=dev umi dev
Browserslist: caniuse-lite is outdated. Please run:
  npx update-browserslist-db@latest
  Why you should do it regularly: https://github.com/browserslist/update-db#readme
Bundle with webpack 5...
⏱️  MFSU Enabled
Starting the development server...

* Webpack █████████████████████████ building (10%) 0/2 entries 1/2 dependencies 0/1 modules 1 active
 ...odules\umi\node_modules\@umijs\preset-built-in\bundled\@pmmmwh\react-refresh-webpack-plugin\client\ReactRefreshEnt
ry.js

node:internal/crypto/hash:69
  this[kHandle] = new _Hash(algorithm, xofLen);
                  ^

Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:69:19)
    at Object.createHash (node:crypto:133:10)
    at BulkUpdateDecorator.hashFactory (D:\桌面\fastapi-ui-ant-P12\node_modules\@umijs\deps\compiled\webpack\5\bundle5.js:184161:18)
    at BulkUpdateDecorator.update (D:\桌面\fastapi-ui-ant-P12\node_modules\@umijs\deps\compiled\webpack\5\bundle5.js:184062:50)
    at OriginalSource.updateHash (D:\桌面\fastapi-ui-ant-P12\node_modules\@umijs\deps\compiled\webpack-sources2\index.js:1:51038)
    at NormalModule._initBuildHash (D:\桌面\fastapi-ui-ant-P12\node_modules\@umijs\deps\compiled\webpack\5\bundle5.js:115961:17)
    at handleParseResult (D:\桌面\fastapi-ui-ant-P12\node_modules\@umijs\deps\compiled\webpack\5\bundle5.js:116027:10)
    at D:\桌面\fastapi-ui-ant-P12\node_modules\@umijs\deps\compiled\webpack\5\bundle5.js:116119:4
    at processResult (D:\桌面\fastapi-ui-ant-P12\node_modules\@umijs\deps\compiled\webpack\5\bundle5.js:115836:11)
    at D:\桌面\fastapi-ui-ant-P12\node_modules\@umijs\deps\compiled\webpack\5\bundle5.js:115900:5
    at D:\桌面\fastapi-ui-ant-P12\node_modules\@umijs\deps\compiled\webpack\5\bundle5.js:35132:3
    at iterateNormalLoaders (D:\桌面\fastapi-ui-ant-P12\node_modules\@umijs\deps\compiled\webpack\5\bundle5.js:34958:10)
    at Array.<anonymous> (D:\桌面\fastapi-ui-ant-P12\node_modules\@umijs\deps\compiled\webpack\5\bundle5.js:34949:4)
    at runCallbacks (D:\桌面\fastapi-ui-ant-P12\node_modules\@umijs\deps\compiled\webpack\5\bundle5.js:24341:15)
    at D:\桌面\fastapi-ui-ant-P12\node_modules\@umijs\deps\compiled\webpack\5\bundle5.js:24514:4
    at D:\桌面\fastapi-ui-ant-P12\node_modules\@umijs\deps\compiled\webpack\5\bundle5.js:33829:16 {
  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
  library: 'digital envelope routines',
  reason: 'unsupported',
  code: 'ERR_OSSL_EVP_UNSUPPORTED'
}

Node.js v18.18.0
Done in 17.70s.

原因分析

由于Node.js和OpenSSL兼容性问题,您在执行yarn start期间遇到了ERR_OSSL_EVP_UNSUPPORTED错误。这个错误通常出现在Node.js 17版本及更高版本中,原因是在OpenSSL 3.0中默认禁用了某些加密功能。

解决问题

1. 设置环境变量

错误可以通过设置一个环境变量来解决,这可以告诉Node.js使用OpenSSL 3.0的传统提供者功能。

在Windows上(命令行):

set NODE_OPTIONS=--openssl-legacy-provider
yarn start

在Windows上(Powershell):

$env:NODE_OPTIONS="--openssl-legacy-provider"
yarn start

在macOS或Linux上:

export NODE_OPTIONS=--openssl-legacy-provider
yarn start

这会临时地为当前会话设置环境变量。如果这解决了问题,您可能希望在环境中永久设置此更改,或者将其包含在项目启动脚本中。

2. 更新包脚本

或者,您可以通过修改package.json脚本,在运行项目时包含此环境变量:

"scripts": {
  "start": "cross-env NODE_OPTIONS=--openssl-legacy-provider umi dev",
  "build": "cross-env NODE_OPTIONS=--openssl-legacy-provider umi build"
}

3. 升级或降级Node.js

如果上述解决方案不可行,考虑更改Node.js版本。早于17版本的Node.js版,或者最新的LTS版本,可能不会出现这个问题。

  • 对于生产应用程序来说,降级到LTS版本(如16.x)可能是一个更稳定的解决方案。
  • 如果您使用的是早期版本的Node.js,或者更高版本可能仍存在与OpenSSL 3.0相关的未解决问题,请考虑升级到最新的LTS版本。

总结

到此这篇关于解决前端报错“opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ]”的文章就介绍到这了,更多相关前端报错opensslErrorStack error:03000086内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 30分钟用Node.js构建一个API服务器的步骤详解

    30分钟用Node.js构建一个API服务器的步骤详解

    这篇文章主要介绍了30分钟用Node.js构建一个API服务器的步骤详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • 提高Node.js性能的应用技巧分享

    提高Node.js性能的应用技巧分享

    Node.js 是单线程非阻塞 I/O, 使其可以支持成千上万的并发操作。这和 NGINX 解决 C10K 问题的方式如出一辙。Node.js 以高效的性能和开发效率著称。
    2017-08-08
  • mongodb初始化并使用node.js实现mongodb操作封装方法

    mongodb初始化并使用node.js实现mongodb操作封装方法

    这篇文章主要介绍了mongodb初始化并使用node.js实现mongodb操作封装方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • 使用node-cron实现Node.js定时任务方式

    使用node-cron实现Node.js定时任务方式

    node-cron是一个轻量级的Node.js库,用于在指定时间或间隔执行任务,它支持Cron表达式,适用于定时任务场景,文章还介绍了基础用法、高级功能、实际应用示例以及注意事项
    2025-10-10
  • Node.js中使用mongoskin操作mongoDB实例

    Node.js中使用mongoskin操作mongoDB实例

    这篇文章主要介绍了Node.js中使用mongoskin操作mongoDB实例,Mongous是一个轻量级的nodejs mongodb驱动,需要的朋友可以参考下
    2014-09-09
  • nodejs调用rust的完整代码实例

    nodejs调用rust的完整代码实例

    Rust主要用在一些需要高性能效果的地方,这篇文章主要介绍了nodejs调用rust的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-08-08
  • 在Node.js中实现视频收藏功能

    在Node.js中实现视频收藏功能

    在构建视频分享平台时,视频的收藏功能是用户互动的重要组成部分,本文将介绍如何在Node.js应用中实现视频收藏功能,包括数据模型的创建、业务逻辑的实现以及接口的验证测试,需要的朋友可以参考下
    2024-04-04
  • 详解Node.js中的Async和Await函数

    详解Node.js中的Async和Await函数

    这篇文章主要介绍了Node.js中的Async和Await函数的相关知识,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2018-02-02
  • Node.js匹配文件夹所有文件关键字的完整教程

    Node.js匹配文件夹所有文件关键字的完整教程

    本文基于nodejs构建一个自动化检测工具:读取 Excel 中的关键字,在指定目录的所有文件中搜索是否存在对应内容,最终生成带标记结果的 Excel 文件,需要的朋友可以参考下
    2025-04-04
  • 使用Node.js配合Nginx实现高负载网络

    使用Node.js配合Nginx实现高负载网络

    这篇文章主要介绍了使用Node.js配合Nginx实现高负载网络,Node的异步加上Nginx的反向代理在性能上实在是给力!需要的朋友可以参考下
    2015-06-06

最新评论