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"
本文介绍了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屋!
查看全文