Mee*_*hah 45 javascript openssl node.js
我正在使用 Tailwind 构建一个简单的 React 应用程序。我用过create-react-app然后安装了tailwind。我以前已经做过很多次了。
为了安装 Tailwind,我还必须安装craco并更改package.json “scripts” 以使用craco,如下所示:
"scripts": {
"start": "craco start",
"build": "craco build",
"test": "craco test",
"eject": "react-scripts eject"
}
Run Code Online (Sandbox Code Playgroud)
然而,这一次,当我运行时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"
}
Run Code Online (Sandbox Code Playgroud)
现在正在发挥作用。但有人可以向我解释一下它--openssl-legacy-provider到底是什么以及它是如何工作的吗?
我看到了许多关于人们由于 Node.js v17 的更改而遇到的 OpenSSL 问题的答案。就我个人而言,在切换到带有 M1 芯片的新 MacBook 后,我在 vue.js/ Electron 应用程序中遇到了这个问题。
此 GitHub 问题列出了适用于不同用户的多个选项。在我的场景中,调整 package.json 文件中的脚本命令有效:
"serve": "export NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
"build": "export NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build"
Run Code Online (Sandbox Code Playgroud)
我见过用户用运行命令替换导出。请记住,其他操作系统上的语法可能有所不同。例如:
Set and set
Run Code Online (Sandbox Code Playgroud)
小智 6
由于Node.js v17的更改,--openssl-legacy-provider添加了用于处理OpenSSL v3上的密钥大小。您以某种方式安装了最新版本的节点。
npm install重新安装node_modules。我在 Nuxt 2.15 中遇到了这个错误,我通过以下方式修复了该错误。
package.json编辑
我有 Ubuntu 所以这个方法对我有用
"scripts":{
"dev":"export SET NODE_OPTIONS=--openssl-legacy-provider && nuxt",
"build":"export SET NODE_OPTIONS=--openssl-legacy-provider && nuxt build",
"start":"export SET NODE_OPTIONS=--openssl-legacy-provider && nuxt start",
"generate":"export SET NODE_OPTIONS=--openssl-legacy-provider && nuxt generate"
},
Run Code Online (Sandbox Code Playgroud)
我的伙伴有Windows,但是上面的方法不起作用,然后这个方法就起作用了
"scripts":{
"dev":"SET NODE_OPTIONS=--openssl-legacy-provider && nuxt",
"build":"SET NODE_OPTIONS=--openssl-legacy-provider && nuxt build",
"start":"SET NODE_OPTIONS=--openssl-legacy-provider && nuxt start",
"generate":"SET NODE_OPTIONS=--openssl-legacy-provider && nuxt generate"
},
Run Code Online (Sandbox Code Playgroud)
最有趣的是它在 Ubuntu 和 Windows 中以其他方式工作
| 归档时间: |
|
| 查看次数: |
154079 次 |
| 最近记录: |