【问题标题】:node: --openssl-legacy-provider is not allowed in NODE_OPTIONS节点:NODE_OPTIONS 中不允许使用 --openssl-legacy-provider
【发布时间】:2022-10-17 17:38:25
【问题描述】:

在 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,节点 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)

【问题讨论】:

    标签: node.js npm node-modules


    【解决方案1】:

    在 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
    

    【讨论】:

    • 节省时间,在 Fedora 36 上也遇到了这个问题。谢了哥们!
    • 只是补充这些行还没有奏效,我需要重新启动一些东西吗?
    • 好的,我不得不取消注释该部分,然后删除 node_modules 并再次运行 npm install。然后它甚至可以在没有--openssl-legacy-provider 的情况下工作,因为我仍在 Fedora 36 上的节点 v16.14.0 上运行。
    【解决方案2】:

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

    【讨论】:

    • unset 工作正常,这个命令节省了很多时间
    【解决方案3】:

    您可以尝试对 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/
    【解决方案4】:

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

    nvm use node
    

    【讨论】:

      【解决方案5】:

      只需运行此命令

      unset NODE_OPTIONS
      

      【讨论】:

        猜你喜欢
        • 2021-12-14
        • 2022-01-11
        • 2021-12-25
        • 2010-10-01
        • 2022-12-24
        • 1970-01-01
        • 2022-10-06
        • 1970-01-01
        • 2016-04-19
        相关资源
        最近更新 更多