我创建了默认的IntelliJ IDEA React项目,并得到了这个:

Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:67:19)
    at Object.createHash (node:crypto:130:10)
    at module.exports (/Users/user/Programming Documents/WebServer/untitled/node_modules/webpack/lib/util/createHash.js:135:53)
    at NormalModule._initBuildHash (/Users/user/Programming Documents/WebServer/untitled/node_modules/webpack/lib/NormalModule.js:417:16)
    at handleParseError (/Users/user/Programming Documents/WebServer/untitled/node_modules/webpack/lib/NormalModule.js:471:10)
    at /Users/user/Programming Documents/WebServer/untitled/node_modules/webpack/lib/NormalModule.js:503:5
    at /Users/user/Programming Documents/WebServer/untitled/node_modules/webpack/lib/NormalModule.js:358:12
    at /Users/user/Programming Documents/WebServer/untitled/node_modules/loader-runner/lib/LoaderRunner.js:373:3
    at iterateNormalLoaders (/Users/user/Programming Documents/WebServer/untitled/node_modules/loader-runner/lib/LoaderRunner.js:214:10)
    at iterateNormalLoaders (/Users/user/Programming Documents/WebServer/untitled/node_modules/loader-runner/lib/LoaderRunner.js:221:10)
/Users/user/Programming Documents/WebServer/untitled/node_modules/react-scripts/scripts/start.js:19
  throw err;
  ^

这似乎是最近才出现的问题——webpack在4天前遇到了这个问题,目前仍在处理。


当前回答

在你更改npm版本或进行任何配置更改之前,只需运行npm update将你的包更新到最新的小版本。

这为我解决了问题。

其他回答

我在Docker构建中遇到了这个问题,我在Docker文件中添加了这一行:

RUN export NODE_OPTIONS=--openssl-legacy-provider && yarn build && yarn install --production --ignore-scripts --prefer-offline

对于本地开发,在package.json文件中添加交换机。

构造变压器失败:错误:错误:0308010C:数字信封例程::不支持

解决上述错误的最简单和最简单的解决方案是将Node.js降级到v14.18.1。然后只需删除文件夹node_modules,并尝试重新构建项目,您的错误必须解决。

这是最简单的答案。

如果你正在使用react-scripts,你现在可以简单地升级到5.0.0版本(或更高版本),这似乎已经解决了这个问题(它包括一个更新版本的webpack)。

例子: NPM I react-scripts@latest

在更新webpack之后,我通过更新我的babel-loader版本来解决这个错误。然而,这可能是由于另一个加载器或插件,加载器运行器出现在控制台输出的原始问题。见此处评论

我通过使用LTS版本修复:

echo "lts" > .nvmrc
nvm install

React Native有一个有bug的脚本来查找Node.js可执行文件的路径。

这将通过节点版本管理器将版本设置为Node.js的最新稳定版本。

我发现即使Node.js在我的路径中,如果我有一个~/。它将尝试在NVM中找到用途,但失败了。这将当前节点设置为链接到~/中的节点。nvm,因此React Native可以找到。