lok*_*oki 80 node.js npm node-modules
sudo apt upgrade
在Ubuntu\xc2\xa020.04 (Focal Fossa)上更新后出现此问题。
之前我使用的是 Node.js v18.0.0 和 npm 8.7.0 版本,但是更新后出现了问题。我运行了命令nvm install node --reinstall-packages-from=node
,但没有帮助。
现在我使用 npm v8.12.1 和 Node.js v18.4.0。
\n运行命令时npm start
,我收到消息:
> mini-app@0.0.0 start\n> cross-env PORT=10888 HTTPS=false react-scripts start --openssl-legacy-provider\n\nnode: --openssl-legacy-provider is not allowed in NODE_OPTIONS\n
Run Code Online (Sandbox Code Playgroud)\n文件package.json的一部分如下所示:
\n "scripts": {\n "start": "cross-env PORT=10888 HTTPS=false react-scripts start --openssl-legacy-provider",\n "build": "react-scripts build",\n "predeploy": "npm run build",\n "deploy": "vk-miniapps-deploy",\n "tunnel": "vk-tunnel --insecure=1 --http-protocol=https --ws-protocol=wss --host=localhost --port=10888"\n },\n
Run Code Online (Sandbox Code Playgroud)\n我回到了 npm 8.7.0 版本npm install -g npm@8.7.0
,但现在甚至 Node.js 版本的输出也显示了相同的错误:
node -v\n
Run Code Online (Sandbox Code Playgroud)\n输出:
\nnode: --openssl-legacy-provider is not allowed in NODE_OPTIONS\n
Run Code Online (Sandbox Code Playgroud)\n尝试更新:
\nnvm install 12.13.0\n
Run Code Online (Sandbox Code Playgroud)\n输出:
\nv12.13.0 is already installed.\nNow using node v12.13.0 (npm v)\n
Run Code Online (Sandbox Code Playgroud)\n
Aym*_*awy 45
unset NODE_OPTIONS
Run Code Online (Sandbox Code Playgroud)
小智 33
对我来说,单独取消设置 NODE_OPTIONS 并不能解决问题。我不得不使用
nvm use v18
Run Code Online (Sandbox Code Playgroud)
来解决问题。
Mic*_*aël 26
我们可以在.npmrc文件中设置 SSL 旧版选项。
在我的例子中,Node.JS v18 和 npm v9。
node-options="--openssl-legacy-provider"
Run Code Online (Sandbox Code Playgroud)
rim*_*hox 21
在 Linux 上,您需要编辑/etc/ssl/openssl.cnf文件以取消注释几行,以启用旧提供程序支持。
我使用的是Fedora 36;我必须更改这些行:
##[provider_sect]
##default = default_sect
##legacy = legacy_sect
##
##[default_sect]
##activate = 1
##
##[legacy_sect]
##activate = 1
Run Code Online (Sandbox Code Playgroud)
到:
[provider_sect]
default = default_sect
legacy = legacy_sect
[default_sect]
activate = 1
[legacy_sect]
activate = 1
Run Code Online (Sandbox Code Playgroud)
您可以尝试降级版本。但作为快速解决方案,您可以执行以下选项。
在类 Unix系统(Linux、macOS、Git Bash等)上:
export NODE_OPTIONS=--openssl-legacy-provider
Run Code Online (Sandbox Code Playgroud)
在 Windows 命令提示符下:
set NODE_OPTIONS=--openssl-legacy-provider
Run Code Online (Sandbox Code Playgroud)
在 PowerShell 中:
$env:NODE_OPTIONS = "--openssl-legacy-provider"
Run Code Online (Sandbox Code Playgroud)
小智 8
我正在运行 macOS。我之前使用的是 Node.js 版本 18,它在我的 Node.js 项目中存在此问题:
Error message "error:0308010C:digital envelope routines::unsupported"
Run Code Online (Sandbox Code Playgroud)
我将 Node.js 版本降级到 16 LTS,然后出现以下错误:
node: --openssl-legacy-provider is not allowed in NODE_OPTIONS
Run Code Online (Sandbox Code Playgroud)
只需在终端中运行以下命令即可解决该问题。
unset NODE_OPTIONS
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以尝试对 NODE_OPTIONS 生产变量执行取消设置。可以从命令行完成。
您的 Node.js 版本似乎已经是最新的(版本 18)。根据 GitHub 页面Running code via CLI triggers error: --openssl-legacy-provider is not allowed in NODE_OPTIONS #136599 ,已经处理并解决了类似的问题。
归档时间: |
|
查看次数: |
258960 次 |
最近记录: |