我创建了默认的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天前遇到了这个问题,目前仍在处理。


当前回答

在Windows上,通过卸载openssl 1.1.1,安装openssl 3(如果你使用chocolatey: choco install openssl.light),并将Angular更新到最新版本(目前为14),解决了上述webpack配置问题。

当然,正如大多数答案所建议的那样,降级Node并不是一个正确的方法。

其他回答

当我用nvm更改节点版本时,我也遇到了同样的问题。如果Ypu在你的项目中使用sass,请尝试:

Sudo NPM重建node-sass

这可能不是每个人都能回答的问题。但是对于在docker中运行node 17及以上版本的任何人来说,降级就像每个人都说的那样会有帮助。不需要open-legacy-sslprovider。一个简单的开关在您的Dockerfile从使用

From node

使用

From node:16.* 

修复了docker中的此问题。

我在使用Node.js 17.0.1时也遇到了同样的问题。我通过以下步骤解决了这个问题:

打开控制面板→程序和功能→Node.js,右键单击a .js卸载Node.js 登录https://nodejs.org/en/网站下载并安装。

这个解决方案对我很有效。

这个错误出现在Node.js版本17+,所以尝试降级Node.js版本。

从计算机上卸载Node.js。 从https://nodejs.org/download/release/v16.13.0/下载Node.js版本16并重新安装

这是所有。

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

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

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