gatsby 必须使用OpenSSL 3.0默认不再允许的algorithm or key size.
UPDATE ⚠️
这很可能是一个网页问题-https://github.com/webpack/webpack/issues/14532
他们在version 5.61.0-https://github.com/webpack/webpack/releases/tag/v5.61.0发布了一个补丁,所以升级网页包也应该解决这个问题
webpack team has stated的一名成员表示,他们不打算将修复程序向后移植到webpack 4,因此如果您使用的是webpack 4,则可能需要先升级到webpack 5.
从Node.js 17's announcement post开始:
如果应用程序中的Node出现ERR_OSSL_EVP_UNSUPPORTED
错误.js 17,您的应用程序或正在使用的模块很可能试图使用OpenSSL 3.0默认不再允许的算法或密钥大小.增加了一个新的command-line option--openssl-legacy-provider
,作为这些严格限制的临时解决方案,它将恢复到传统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"
}
}