Node.js 17.0.1 Gatsby错误-数字信封例程::不支持...ERR_OSSL_EVP_UNSUPPORTED" [英] Node.js 17.0.1 Gatsby error - "digital envelope routines::unsupported ... ERR_OSSL_EVP_UNSUPPORTED"

查看:27
本文介绍了Node.js 17.0.1 Gatsby错误-数字信封例程::不支持...ERR_OSSL_EVP_UNSUPPORTED"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在构建Gatsby站点。我将Node.js升级到v17.0.1,当我运行构建时,出现错误:

Error: digital envelope routines::unsupported

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

如果我将其降级到v16,它将工作得很好,构建将会成功。我如何修复此问题?

通过谷歌搜索,这可能是一个类似的问题: Error: error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt #48

推荐答案

Gatsby必须使用OpenSSL3.0默认不再允许的algorithm or key size

更新⚠️

这很可能是webpack的问题-https://github.com/webpack/webpack/issues/14532

他们已经发布了版本5.61.0-https://github.com/webpack/webpack/releases/tag/v5.61.0的修复程序-因此升级webpack也应该解决这个问题

webpack团队的一名成员has stated他们不打算将修复程序移植到webpack 4,所以如果您使用的是webpack 4,您可能需要先考虑升级到webpack 5。


发件人Node.js 17's announcement post

如果您在使用Node.js 17的应用程序中遇到ERR_OSSL_EVP_UNSUPPORTED错误,则可能是您的应用程序或您正在使用的模块正在尝试使用OpenSSL3.0默认不再允许的算法或密钥大小。已添加新的command-line option--openssl-legacy-provider以恢复到旧版提供程序,作为这些收紧限制的临时解决办法。

在终端上运行此命令可能如下所示:

node --openssl-legacy-provider ./node_modules/.bin/gatsby build

您也可以通过NODE_OPTIONS环境变量传入此参数。

因此,如果您希望继续使用NPM脚本,可以将build脚本更改为:

// package.json
{
  "scripts": {
    "build": "export NODE_OPTIONS=--openssl-legacy-provider; gatsby build"
  }
}

这篇关于Node.js 17.0.1 Gatsby错误-数字信封例程::不支持...ERR_OSSL_EVP_UNSUPPORTED"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆