javascript - NPM 中的 --openssl-legacy-provider 是什么?

标签 javascript npm openssl tailwind-css craco

我正在使用 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实际上是以及它是如何工作的?

最佳答案

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

  • 恢复你以前版本的 nodejs。
  • 从 package.json 中手动删除节点依赖项(例如“node”:17.4.3)
    和 packagelock.json。
  • 删除 node_modules 文件夹并使用 npm install 重新安装 node_modules。
  • 关于javascript - NPM 中的 --openssl-legacy-provider 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69962209/

    相关文章:

    javascript - 使用 ES6 语法导入一个包作为另一个包的扩展

    javascript - jsplump动态绘制状态机图

    node.js - 无法在 Windows 7 上安装 ccap(nodejs 库)

    node.js - npm在emacs eshell下不能正确显示提示

    javascript - 如果 jQuery 的核心是由 JavaScript 语法组成的,为什么要明确地为其添加浏览器支持呢?

    javascript - 正则表达式美化缩小的 CSS

    node.js - 如何全局卸载 npm 包 commitizen?

    swift - NSTask 在命令中添加额外的单引号

    javascript - 使用椭圆曲线 key 的 Node.js HTTPS 请求

    c++ - 使用 C++ 和 openssl 计算 STREEBOG256 和 STREEBOG512 哈希值