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

1.报错背景

出现这个错误是因为 node.js V17版本中最近发布的OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响.

Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:71:19)
    at Object.createHash (node:crypto:133:10)
    at module.exports (D:\06_code\vscode\shopping-system\node_modules\webpack\lib\util\createHash.js:135:53)
    at NormalModule._initBuildHash (D:\06_code\vscode\shopping-system\node_modules\webpack\lib\NormalModule.js:417:16)
    at handleParseError (D:\06_code\vscode\shopping-system\node_modules\webpack\lib\NormalModule.js:471:10)
    at D:\06_code\vscode\shopping-system\node_modules\webpack\lib\NormalModule.js:503:5
    at D:\06_code\vscode\shopping-system\node_modules\webpack\lib\NormalModule.js:358:12
    at D:\06_code\vscode\shopping-system\node_modules\loader-runner\lib\LoaderRunner.js:373:3
    at iterateNormalLoaders (D:\06_code\vscode\shopping-system\node_modules\loader-runner\lib\LoaderRunner.js:214:10)
    at Array.<anonymous> (D:\06_code\vscode\shopping-system\node_modules\loader-runner\lib\LoaderRunner.js:205:4)
    at Storage.finished (D:\06_code\vscode\shopping-system\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:55:16)
    at D:\06_code\vscode\shopping-system\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:91:9
    at D:\06_code\vscode\shopping-system\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'
}

2.报错原因

根据报错信息,这个问题涉及到项目启动时的构建过程中的一个模块。报错中提到了 babel-loader 和 webpack 相关的文件。应该是下载的版本和依赖的版本不一致。

要解决这个问题,可以尝试以下几个步骤:

1.更新依赖项:运行以下命令更新项目的依赖项,以确保使用的是最新版本的 babel-loader 和 webpack:npm update

2.清除缓存:运行以下命令清除 npm 缓存:npm cache clean --force

3.删除 node_modules 目录:运行以下命令删除项目的 node_modules 目录:rm -rf node_modules。重新安装依赖项:运行以下命令重新安装项目的依赖项:npm install

4.方法1.打开终端(按健win+R弹出窗口,键盘输入cmd,然后敲回车)并按照说明粘贴这些:(不一定行,本人失败了)
Linux & Mac OS (windows git bash)

export NODE_OPTIONS=--openssl-legacy-provider


windows命令提示符:

set NODE_OPTIONS=--openssl-legacy-provider

5.检查 Node.js 版本:确保你使用的是与项目兼容的 Node.js 版本。根据报错信息,你使用的是 Node.js v18.16.0,可以尝试降级到一个稳定的版本(例如 v14.x.x 或 v16.x.x)

3.问题解决

我最后将 Node.js版本从Node.js v18.16.0 降到14.17.0后OK啦,应该降到16版本也能行。

具体的安装可以参考下面文章

NVM的安装和NPM下载速度慢的问题 - 简书

注意:NVM的安装目录不能有空格和中文、所以默认的安装目录Program File不行的、需要自己更改。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值