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


当前回答

在Dockerfile上,你应该添加:

ENV NODE_OPTIONS=--openssl-legacy-provider

其他回答

访问::https://nodejs.org/en/

并下载大多数用户的推荐版本。

然后卸载PC上的Node.js,重新安装推荐版本。

据我所知,这是开发团队的问题。他们会尽快修复,但在此期间使用推荐版本,一切都会好起来的。

如果我们使用当前的LTS版本的Node.js,那么这个错误将不会出现。将Node.js版本降级到当前的LTS版本(16.13.0)。

有多种方法可以安装所需的版本。其中之一是使用nvm (Node.js版本管理器)。

步骤1:安装nvm(如果没有安装,请使用节点版本管理器(nvm)在本地安装Node.js) 步骤2:nvm安装16.13.0(或lts)

它是Node.js版本。

我在Node.js 17上有这个错误,但当我使用nvm将我的Node.js版本切换到旧版本(16)时,它是好的。

检查

node -v
v17.4.0

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

nvm install 16

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

PowerShell:

$env:NODE_OPTIONS = "--openssl-legacy-provider"

它适用于Node.js v18.7.0。