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

Node环境编译Angular应用出现ERR_OSSL_EVP_UNSUPPORTED错误如何解决

报错根因

你遇到的ERR_OSSL_EVP_UNSUPPORTED报错是Node 17+版本的常见兼容问题:Node 17及以上版本默认启用OpenSSL 3.0,移除了部分旧版哈希算法,而你下载的这个Angular项目依赖的Webpack版本较低,仍在调用已废弃的加密接口,因此触发报错。你本地其他项目可以正常运行,是因为这些项目的Angular版本更高,内置的Webpack已经适配了OpenSSL 3.0的新规则。

解决方案

方案1:临时设置环境变量(单次启动生效)

根据你使用的终端类型执行对应命令:

  • Windows cmd终端:
    先执行 set NODE_OPTIONS=--openssl-legacy-provider,再执行 ng serve --open 启动项目
  • Windows PowerShell终端:
    先执行 $env:NODE_OPTIONS="--openssl-legacy-provider",再执行 ng serve --open 启动项目
  • Mac/Linux终端:
    直接执行 NODE_OPTIONS=--openssl-legacy-provider ng serve --open 即可启动

方案2:修改项目启动脚本(当前项目永久生效)

打开项目根目录的package.json文件,找到scripts配置块下的start字段,修改为:

"scripts": {
  "start": "set NODE_OPTIONS=--openssl-legacy-provider && ng serve --open",
  // 其余原有脚本配置保持不变
}

修改后直接执行npm start即可正常启动,无需每次手动设置环境变量。如果需要兼容Mac/Linux系统,可以在set前加上cross-env(需提前执行npm i cross-env -D安装依赖)。

方案3:版本适配(长期通用解决方案)

  • 升级当前项目的Angular版本至14及以上,对应依赖的Webpack版本会自动升级到适配OpenSSL 3.0的版本,可完美兼容Node 17+
  • 也可使用nvm等Node版本管理工具,将当前环境的Node版本切换至16 LTS版本,运行旧版Angular项目不会触发该报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 18:15:01