错误:错误:0308010C:数字信封例程::在反应 16 和节点 21 上不受支持

问题描述 投票:0回答:1

一年前的 React 项目,最近,当我尝试运行

yarn start
时遇到此错误。

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

Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:80:19)
    at Object.createHash (node:crypto:139:10)
    at module.exports (.../node_modules/webpack/lib/util/createHash.js:135:53)
    at NormalModule._initBuildHash (.../node_modules/webpack/lib/NormalModule.js:417:16)
    at .../node_modules/webpack/lib/NormalModule.js:452:10
    at .../node_modules/webpack/lib/NormalModule.js:323:13
    at .../node_modules/loader-runner/lib/LoaderRunner.js:367:11
    at .../node_modules/loader-runner/lib/LoaderRunner.js:233:18
    at context.callback (.../node_modules/loader-runner/lib/LoaderRunner.js:111:13)
    at .../node_modules/react-scripts/node_modules/babel-loader/lib/index.js:59:103 {
  opensslErrorStack: [
    'error:03000086:digital envelope routines::initialization error',
    'error:0308010C:digital envelope routines::unsupported'
  ],
  library: 'digital envelope routines',
  reason: 'unsupported',
  code: 'ERR_OSSL_EVP_UNSUPPORTED'
}

一些帖子建议使用:

export NODE_OPTIONS=--openssl-legacy-provider
然后我得到了这个错误,但是,我正在使用react 16.8.0

src/index.tsx
  Line 11:1:  This should be done within a hook                                                                                            jest/require-hook
  Line 11:1:  ReactDOM.render is deprecated since React 18.0.0, use createRoot instead, see https://reactjs.org/link/switch-to-createroot  react/no-deprecated
  Line 26:1:  This should be done within a hook                                                                                            jest/require-hook

src/utils/axiosIntercepter.js
  Line 4:1:   This should be done within a hook  jest/require-hook
  Line 14:1:  This should be done within a hook  jest/require-hook

如有任何建议,我们将不胜感激,提前致谢。

reactjs node.js npm yarn-lock.json
1个回答
0
投票

您还可以采取以下几个步骤来排除故障并可能解决问题:

降级 Node.js:虽然通常建议使用最新版本的 Node.js,但在某些情况下,它可能会引入某些软件包的兼容性问题。您可以尝试将 Node.js 降级到更稳定或更广泛使用的版本,例如 LTS(长期支持)版本,看看问题是否仍然存在。 检查更新:确保所有项目依赖项(包括 webpack 和 React-scripts)都是最新的。有时,更新这些依赖项可以解决与较新版本的 Node.js 的兼容性问题。 检查 webpack 配置:如果错误特别提到 webpack,则您的 webpack 设置中可能存在配置问题。检查您的 webpack 配置、插件和加载器,确保它们与您正在使用的 Node.js 版本兼容。 检查特定于环境的配置:如果您使用任何特定于环境的配置(例如环境变量或配置文件),请确保它们设置正确并且不会与您的 Node.js 设置发生冲突。 搜索类似问题:在论坛、GitHub 问题或 Stack Overflow 上查找其他用户报告的类似问题。其他人可能遇到并解决了同样的问题,提供了有价值的见解或解决方法。 报告问题:如果您无法自行解决问题,请考虑将其报告给受影响的包或库的维护者。他们也许能够在未来版本中提供帮助或发布针对该问题的修复程序。 考虑使用不同的环境:如果所有其他方法都失败并且问题仍然存在,请考虑在不同的开发环境上设置项目,例如不同的计算机或具有不同配置的虚拟机。这可以帮助隔离问题并提供临时解决方法,直到找到永久解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.