• error:03000086:digital envelope routines::initialization error问题解决


    目录

    问题描述:error:03000086:digital envelope routines::initialization error

    问题原因:nodejs V17 版本发布了 OpenSSL3.0 对算法和秘钥大小增加了更为严格的限制,nodeJs v17 之前版本没影响,但 V17 和之后版本会出现这个错误。

    解决方案:

    方法一:Vscode或者cmd命令行输入命令

    方法二: 


    vue前端项目命令框输入npm run serve或者npm run dev

    报error:03000086:digital envelope routines::initialization error错误

    Error: error:0308010C:digital envelope routines::unsupported   
        at new Hash (node:internal/crypto/hash:69:19)
        at Object.createHash (node:crypto:133:10)
        at module.exports (D:\Code\VueProject\iss-edu-platform-online-front-all\node_modules\webpack\lib\util\createHash.js:135:53)
        at NormalModule._initBuildHash (D:\Code\VueProject\iss-edu-platform-online-front-all\node_modules\webpack\lib\NormalModule.js:417:16)
        at handleParseError (D:\Code\VueProject\iss-edu-platform-online-front-all\node_modules\webpack\lib\NormalModule.js:471:10)
        at D:\Code\VueProject\iss-edu-platform-online-front-all\node_modules\webpack\lib\NormalModule.js:503:5
        at D:\Code\VueProject\iss-edu-platform-online-front-all\node_modules\webpack\lib\NormalModule.js:358:12
        at D:\Code\VueProject\iss-edu-platform-online-front-all\node_modules\loader-runner\lib\LoaderRunner.js:373:3
        at iterateNormalLoaders (D:\Code\VueProject\iss-edu-platform-online-front-all\node_modules\loader-runner\lib\LoaderRunner.js:214:10)
        at Array. (D:\Code\VueProject\iss-edu-platform-online-front-all\node_modules\loader-runner\lib\LoaderRunner.js:205:4)
        at Storage.finished (D:\Code\VueProject\iss-edu-platform-online-front-all\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:55:16)
        at D:\Code\VueProject\iss-edu-platform-online-front-all\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:91:9   
        at D:\Code\VueProject\iss-edu-platform-online-front-all\node_modules\graceful-fs\graceful-fs.js:123:16
        at 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 v18.17.1

     

    问题描述:

    由于重装了系统,node.js全部重新安装,目前node.js 版本为 18.7.1,部分老项目在使用时报错:

    1.   opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
    2.   library: 'digital envelope routines',
    3.   reason: 'unsupported',
    4.   code: 'ERR_OSSL_EVP_UNSUPPORTED'

    问题原因:

    NodeJs V17 版本发布了 OpenSSL3.0 对算法和秘钥大小增加了更为严格的限制,nodeJs v17 之前版本没影响,但 V17 和之后版本会出现这个错误。老项目是nodeJS16版本。

    解决方案:

    由于版本差异,为了适配老项目最好的方案就是退回旧版本。但技术总在迭代更新,为此我选择了停留在当前版本,简单直接的解决问题。

    方法一:Vscode或者cmd命令行输入命令

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

     使电脑上的 node 版本能适应项目的版本。

    然后再执行 npm run serve ,则能成功运行项目。

     

    方法二: 

    找到package.json 文件,加上:set NODE_OPTIONS=--openssl-legacy-provider && 如下:

    "dev": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --open",

     就我个人而言,方法一是比较好,推荐大家使用方法一。省的每个项目都要配置一下。

  • 相关阅读:
    leetcode 55.跳跃游戏 贪心
    博弈论(奇偶考虑法)+计数+DP(判定转dp):CF838C
    Vue-vuex
    【2023秋招】网易雷火游戏研发工程师笔试
    vue之封装tab类组件
    moment.js 实现获取近一月、近三月、近一年、一月后、一年后等
    从零实现RPC框架之 7: 基于注解的服务自动注册
    前端Canvas入门——一些注意事项
    自然语言处理 Paddle NLP - 任务式对话系统-理论
    【超详细断点级别讲解 SpringSecurity】项目实战:用户认证、用户授权
  • 原文地址:https://blog.csdn.net/weixin_46474921/article/details/132969114