npm NODE_OPTIONS中不允许使用节点:--openssl旧版提供者

5cg8jx4n  于 2022-11-14  发布在  其他
关注(0)|答案(6)|浏览(7139)

这个问题在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 -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)
sirbozc5

sirbozc51#

我在MacOS上遇到了这个问题。在终端上,我运行export来检查我的环境变量,发现NODE_OPTIONS=--openssl-legacy-provider已经被设置。然后我简单地运行unset NODE_OPTIONS,然后就可以再次使用节点了。

xt0899hw

xt0899hw2#

在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
jq6vz3qz

jq6vz3qz3#

您可以尝试对NODE_OPTIONS生产变量执行取消设置操作。可以从命令行执行此操作。
您的Node版本似乎已经是最新的(版本18)。类似的问题已经被处理并解决了,请点击下面的Github链接:https://github.com/microsoft/vscode/issues/136599
希望以上资源中的提示能有所帮助!此致,彼得

8wtpewkr

8wtpewkr4#

我安装了新版本,但没有使用

nvm use node
3mpgtkmj

3mpgtkmj5#

仅运行此命令

unset NODE_OPTIONS
x7yiwoj4

x7yiwoj46#

对我来说,仅取消设置NODE_OPTIONS并不能解决问题,必须使用

nvm use v18

解决问题

相关问题