You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何全局设置NODE_OPTIONS=--openssl-legacy-provider避免重复配置?

Node.js v18.16.1 + Vue 脚本 ERR_OSSL_EVP_UNSUPPORTED 全局及长期解决方案

一、全局配置方案(无需每次添加前缀)

Windows 系统

  1. 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
  2. 在「系统变量」区域点击「新建」:
    • 变量名:NODE_OPTIONS
    • 变量值:--openssl-legacy-provider
  3. 依次点击「确定」保存配置,重启所有终端窗口后生效,后续所有Node进程会自动加载该参数。

Linux/macOS 系统

根据你使用的Shell类型配置:

  • Bash:编辑~/.bashrc或~/.bash_profile文件,添加一行:
    export NODE_OPTIONS="--openssl-legacy-provider"
    
    保存后执行source ~/.bashrc(或对应文件)使配置立即生效。
  • Zsh:编辑~/.zshrc文件,添加上述相同的export语句,执行source ~/.zshrc生效。

二、长期解决办法(从根源适配Node.js 18+)

临时启用legacy provider只是兼容方案,长期建议从以下方向优化:

  • 升级项目核心依赖:
    检查并升级vue-cli-service、webpack、@vue/cli等依赖到最新稳定版。比如Vue CLI 5.x及以上版本已适配Node.js 16/18的OpenSSL 3.0要求,执行npm update或手动修改package.json版本号后重新安装依赖。
  • 调整Webpack配置:
    如果项目使用自定义Webpack配置,升级TerserPlugin、CssMinimizerPlugin等压缩插件到最新版,确保它们使用的加密算法兼容OpenSSL 3.0。若需手动配置,可在Webpack配置文件的optimization.minimizer中调整插件参数,避免使用已废弃的算法。
  • 检查自定义加密代码:
    若项目中有直接调用Node.js crypto模块的自定义加密逻辑,替换为OpenSSL 3.0支持的API和算法,移除已废弃的接口调用。

内容的提问来源于stack exchange,提问作者Ryan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 11:33:16