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

Angular项目执行ng build出现ERR_OSSL_EVP_UNSUPPORTED错误求助

解决Angular 7 + Node.js 18构建时的ERR_OSSL_EVP_UNSUPPORTED错误

问题原因

你的Angular 7项目使用的Webpack版本为4.29.0,而Node.js 18默认采用OpenSSL 3.0,旧版Webpack依赖的哈希算法在OpenSSL 3.0中被标记为不安全,导致构建时抛出ERR_OSSL_EVP_UNSUPPORTED错误。

可行解决方案

1. 正确配置OpenSSL Legacy Provider

如果之前尝试此方案未生效,大概率是命令格式不匹配终端环境,按以下方式操作:

  • 临时运行:
    • Windows(CMD):
      set NODE_OPTIONS=--openssl-legacy-provider && ng build
      
    • Windows(PowerShell):
      $env:NODE_OPTIONS="--openssl-legacy-provider"; ng build
      
    • macOS/Linux:
      NODE_OPTIONS=--openssl-legacy-provider ng build
      
  • 永久配置:修改package.json中的build脚本,避免每次手动输入:
    "scripts": {
      // Windows CMD 环境
      "build": "set NODE_OPTIONS=--openssl-legacy-provider && ng build",
      // 或 macOS/Linux 环境
      // "build": "NODE_OPTIONS=--openssl-legacy-provider ng build"
    }
    
    修改后直接运行npm run build即可。

2. 降级Node.js到兼容版本

Angular 7官方兼容的Node.js版本为8.x或10.x(LTS版本),使用nvm(Node版本管理器)切换更便捷:

  • 安装nvm后,执行:
    nvm install 10.24.1
    nvm use 10.24.1
    
  • 重新执行npm install和ng build即可正常构建。

3. 升级Angular及依赖(长期方案)

Angular 7已停止维护,升级到兼容Node.js 18的版本(如Angular 14+)是更稳妥的选择:

  • 全局升级Angular CLI:
    npm install -g @angular/cli@latest
    
  • 在项目目录执行升级命令,按提示完成依赖更新:
    ng update @angular/cli @angular/core
    
    升级过程中需同步更新rxjs、typescript等相关依赖,确保版本匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 20:01:20