node: --openssl-legacy-provider is not allowed in NODE_OPTIONS
这个问题是在Ubuntu 20.04上更新sudo apt upgrade
后出现的。以前我在node v18.0.0和npm 8.7.0版本上工作,但在更新后出现了问题,我运行了命令nvm install node --reinstall-packages-from=node
,但没有帮助。 现在我使用npm v8.12.1,node v18.4.0。 当运行命令npm start
时,我收到信息。
> mini-app@0.0.0 start
> cross-env PORT=10888 HTTPS=false react-scripts start --openssl-legacy-provider
node: --openssl-legacy-provider is not allowed in NODE_OPTIONS
文件的一部分package.json
是这样:
"scripts": {
"start": "cross-env PORT=10888 HTTPS=false react-scripts start --openssl-legacy-provider",
"build": "react-scripts build",
"predeploy": "npm run build",
"deploy": "vk-miniapps-deploy",
"tunnel": "vk-tunnel --insecure=1 --http-protocol=https --ws-protocol=wss --host=localhost --port=10888"
},
我回到了npm 8.7.0的版本,npm install -g npm@8.7.0
但现在连node版本的输出都显示了同样的错误。
node -v
node: --openssl-legacy-provider is not allowed in NODE_OPTIONS
尝试更新:
nvm install 12.13.0
v12.13.0 is already installed.
Now using node v12.13.0 (npm v)
我在MacOS上遇到了这个问题。在终端,我运行export
来检查我的环境变量,看到NODE_OPTIONS=--openssl-legacy-provider
已经被设置。然后我简单地运行了unset NODE_OPTIONS
,然后就能再次使用node。
在Linux上,你需要编辑/etc/ssl/openssl.cnf
,取消注释几行以启用旧版提供程序支持。
我使用的是Fedora 36;我不得不改变这些行。
##[provider_sect]
##default = default_sect
##legacy = legacy_sect
##
##[default_sect]
##activate = 1
##
##[legacy_sect]
##activate = 1
修改为:
[provider_sect]
default = default_sect
legacy = legacy_sect
[default_sect]
activate = 1
[legacy_sect]
activate = 1
node_modules
,并再次运行npm install
。然后它甚至在没有--openssl-legacy-provider
的情况下也能工作,因为我仍然在Fedora 36上运行节点v16.14.0。
- white_gecko 2022-08-17
只需运行这个命令
unset NODE_OPTIONS
对我来说,单单取消设置NODE_OPTIONS并不能解决问题,必须使用
nvm use v18
来解决这个问题
unset NODE_OPTIONS
。
- thodwris 2022-11-30
你可以尝试对NODE_OPTIONS生产变量进行取消设置。它可以在命令行中完成。
你的Node版本似乎已经是最新的了(18版)。一个类似的问题已经根据以下Github链接得到了处理和解决:https://github.com/microsoft/vscode/issues/136599。
nvm install 10
命令来修复错误。ERROR: npm is known not to run on Node.js v10.19.0 You'll need to upgrade to a newer Node.js version in order to use this version of npm. You can find the latest version at https://nodejs.org/
- milenao 2022-07-08
我安装了一个新的版本,但没有使用过
nvm use node
我正在运行macOS。我之前使用的是Node Version 18,在我的NodeJs项目中出现了这个问题
Error message "error:0308010C:digital envelope routines::unsupported"
我将节点版本降级到16 LTS,然后出现了这样的错误
node: --openssl-legacy-provider is not allowed in NODE_OPTIONS
这个问题只需在终端运行以下命令就能解决了。
unset NODE_OPTIONS
希望这对您有所帮助!:)