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


当前回答

我今天遇到了这个问题,并通过使用“nvm”切换Node.js版本来解决它。

我一直在用Node.js、Next.js和React做几个个人项目…经常发生在我身上的事情是,我不记得我在哪个项目中使用了哪个版本的Node.js。

因此,通常我会尝试使用Node.js 16来处理当前使用Node.js 14的项目。

我还没有找到更好的方法来记住每个项目的Node.js版本,所以我通常只会在readme.MD中保存我需要运行的所有命令来启动应用程序。

其他回答

我也犯了同样的错误。

我的情况:

安装了新的react typescript应用程序,添加了一些scss和一些组件。

在本地我的构建是工作的,但当我试图发布它失败与错误:

Error: error:0308010C:digital envelope routines::unsupported

我通过将react-script库更新到5.0.1来修复这个问题

"react-scripts": "^5.0.1",

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

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

窗户

安装nvm-windows。 安装你需要的Node.js版本。

nvm install 16

更改Node.js版本

nvm use 16

检查已安装的Node.js版本

nvm list

检查

node -v
v17.4.0

然后回滚到使用nvm的node——lts (node v16.13.2 (npm v8.1.2))。

nvm install 16

然后检查node -v并确认它的版本是16。

切换到不同版本的node也可以。在我的例子中,我从v19.2.0切换到v15.14.0