Node.js v17 中的 --openssl-legacy-provider 是什么?

新手上路,请多包涵

我正在使用 Tailwind 构建一个简单的 React 应用程序。我使用 create-react-app 然后安装了 tailwind。我以前做过很多次。

为了安装 Tailwind,我还必须安装 craco 并更改 package.json “脚本”以使用 craco ,如下所示:

 "scripts": {
    "start": "craco start",
    "build": "craco build",
    "test": "craco test",
    "eject": "react-scripts eject"
  }

然而,这一次,当我运行 npm start 时,我得到了一个我以前从未遇到过的错误:

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

所以我在 StackOverflow 上搜索,有人建议将 --openssl-legacy-provider 添加到我的“开始”脚本中,如下所示:

 "scripts": {
    "start": "craco --openssl-legacy-provider start",
    "build": "craco build",
    "test": "craco test",
    "eject": "react-scripts eject"
  }

它现在正在工作。但是有人可以向我解释一下 --openssl-legacy-provider 到底是什么以及它是如何工作的吗?

原文由 Meet Shah 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 3.3k
1 个回答

由于 Node.js v17 的更改,添加了 --openssl-legacy-provider 以处理 OpenSSL v3 上的密钥大小。您以某种方式安装了最新版本的节点。

  1. 恢复您以前版本的 nodejs。
  2. 从 package.json 和 packagelock.json 中手动删除节点依赖项(例如“node”:17.4.3)。
  3. 删除 node_modules 文件夹并使用 npm install 重新安装 node_modules。

原文由 ninja_456 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏