当前位置:首页 » 《关注互联网》 » 正文

【前端笔记】npm报错ERR_OSSL_EVP_UNSUPPORTED

25 人参与  2024年04月03日 17:35  分类 : 《关注互联网》  评论

点击全文阅读


报错原因

Node版本>=17.x,本地npm run 起项目后会发现终端报错,具体有以下2块关键信息:

Error: error:0308010C:digital envelope routines::unsupported

opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],library: 'digital envelope routines',reason: 'unsupported',code: 'ERR_OSSL_EVP_UNSUPPORTED'

根本原因

原因是node v17中的OpenSSL3.0对允许算法和密钥大小增加了严格的限制。此处查看详情

解决办法

1、node版本降级为16.x

既然是版本问题,最简单粗暴的办法就是降级

2、设置环境变量

在终端手动修改环境变量,输入下面的内容:

export NODE_OPTIONS=--openssl-legacy-provider

然后重新启动项目,就不会失败了。

为什么这个办法能解决,因为在上面的根本原因放的链接里面就已经有答案了,如下图:

在这里插入图片描述

2023-07-27更新:

上面的内容只是解决了本地启动时的问题,如果项目打包部署也出现了这个问题,并且项目中使用到了crypto加密库,可以尝试使用下面的配置:

// vue.config.js or webpack.config.jsconst crypto = require('crypto');const crypto_orig_createHash = crypto.createHash;crypto.createHash = algorithm => crypto_orig_createHash(algorithm === 'md4' ? 'sha256' : algorithm);

其他修复方法


点击全文阅读


本文链接:http://zhangshiyu.com/post/90221.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1