错误:错误:0308010C:数字信封例程::不受支持(Node.js v19.4.0)

jav*_*ail 11 npm reactjs npm-start npm-scripts

Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:71:19)
    at Object.createHash (node:crypto:140:10)
    at module.exports (D:\web development\frontend\react\reduxbasic\node_modules\webpack\lib\util\createHash.js:90:53)
    at NormalModule._initBuildHash (D:\web development\frontend\react\reduxbasic\node_modules\webpack\lib\NormalModule.js:386:16)      
    at handleParseError (D:\web development\frontend\react\reduxbasic\node_modules\webpack\lib\NormalModule.js:434:10)
    at D:\web development\frontend\react\reduxbasic\node_modules\webpack\lib\NormalModule.js:466:5
    at D:\web development\frontend\react\reduxbasic\node_modules\webpack\lib\NormalModule.js:327:12
    at D:\web development\frontend\react\reduxbasic\node_modules\loader-runner\lib\LoaderRunner.js:373:3
    at iterateNormalLoaders (D:\web development\frontend\react\reduxbasic\node_modules\loader-runner\lib\LoaderRunner.js:214:10)       
    at iterateNormalLoaders (D:\web development\frontend\react\reduxbasic\node_modules\loader-runner\lib\LoaderRunner.js:221:10)       
    at D:\web development\frontend\react\reduxbasic\node_modules\loader-runner\lib\LoaderRunner.js:236:3
    at runSyncOrAsync (D:\web development\frontend\react\reduxbasic\node_modules\loader-runner\lib\LoaderRunner.js:130:11)
    at iterateNormalLoaders (D:\web development\frontend\react\reduxbasic\node_modules\loader-runner\lib\LoaderRunner.js:232:2)        
    at Array.<anonymous> (D:\web development\frontend\react\reduxbasic\node_modules\loader-runner\lib\LoaderRunner.js:205:4)
    at Storage.finished (D:\web development\frontend\react\reduxbasic\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:55:16)
    at D:\web development\frontend\react\reduxbasic\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:91:9
D:\web development\frontend\react\reduxbasic\node_modules\react-scripts\scripts\start.js:19
  throw err;
  ^

Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:71:19)
    at Object.createHash (node:crypto:140:10)
    at module.exports (D:\web development\frontend\react\reduxbasic\node_modules\webpack\lib\util\createHash.js:90:53)
    at NormalModule._initBuildHash (D:\web development\frontend\react\reduxbasic\node_modules\webpack\lib\NormalModule.js:386:16)
    at D:\web development\frontend\react\reduxbasic\node_modules\webpack\lib\NormalModule.js:418:10
    at D:\web development\frontend\react\reduxbasic\node_modules\webpack\lib\NormalModule.js:293:13
    at D:\web development\frontend\react\reduxbasic\node_modules\loader-runner\lib\LoaderRunner.js:367:11
    at D:\web development\frontend\react\reduxbasic\node_modules\loader-runner\lib\LoaderRunner.js:233:18
    at context.callback (D:\web development\frontend\react\reduxbasic\node_modules\loader-runner\lib\LoaderRunner.js:111:13)
    at D:\web development\frontend\react\reduxbasic\node_modules\babel-loader\lib\index.js:51:103 {
  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
  library: 'digital envelope routines',
  reason: 'unsupported',
  code: 'ERR_OSSL_EVP_UNSUPPORTED'
}

Node.js v19.4.0
PS D:\web development\frontend\react\reduxbasic>
Run Code Online (Sandbox Code Playgroud)

如何解决这个错误

Mos*_*ang 25

您可以在 Unix 中使用以下命令:

export NODE_OPTIONS=--openssl-legacy-provider

对于 Windows,请改用以下命令:

set NODE_OPTIONS=--openssl-legacy-provider

请注意,您无需降级 Node.js 版本即可解决此问题。


如果您正在使用react-script,您可能还需要通过运行以下命令将其升级到最新版本:

npm i react-scripts@latest

或者您可以替换文件中的以下行package.json

从: "start": "react-scripts start"

到: "start": "react-scripts start --openssl-legacy-provider"

  • 谢谢你!这个解决方案对我有用。 (2认同)
  • Tnx 非常适合 set NODE_OPTIONS=--openssl-legacy-provider,这对我有用。在 package.json 中设置它对我来说不起作用。 (2认同)

Jon*_*hez 7

我的修复

\n
\n

你必须md5在这个文件中使用md4默认值,但它不会起作用。

\n

Crypto 是 Node.js 的一个工具\n https://nodejs.org/api/crypto.html#cryptocreatehashalgorithm-options

\n

我知道这并不理想,但现在工作没有问题,直到我删除 node_modules 文件夹

\n

在此输入图像描述

\n

有了这个版本

\n
\xe2\x9e\x9c  ~ node -v \nv19.8.1\n\xe2\x9e\x9c  ~ npx react-native -v  \n10.2.0\n\xe2\x9e\x9c  ~ react-native --version\n4.14.0\n\xe2\x9e\x9c  ~ npm -v\n9.5.1\n
Run Code Online (Sandbox Code Playgroud)\n

我的错误

\n

我的错误

\n


Sah*_*oru 6

上述步骤对我不起作用,在项目的根目录中运行这些命令解决了问题。

  1. export NODE_OPTIONS=--openssl-legacy-provider

  2. npm start

有关此问题的更多解决方案:访问本文


Sah*_*oru 0

问题:

正如我所看到的,您正在使用version 19node.js(不推荐大多数用户),在 Node.js 官方网站上也提到了。

解决方案:

  1. 前往Node.js 下载页面

  2. 下载适用于您的操作系统的version 18node.js(推荐大多数用户使用 LTS)。

  3. 删除node_modules和package_lock文件。

  4. 跑步npm install

  5. 再次运行您的应用程序。

问题现在应该得到解决。