Angular应用运行遇ERR_OSSL_EVP_UNSUPPORTED错误求解决
解决Angular项目的ERR_OSSL_EVP_UNSUPPORTED错误
核心问题排查
- 项目目录混淆:你提供的
package.json属于React+Vite项目,但错误日志来自Angular项目运行,请确认操作的是目标Angular项目的目录。 - Node版本切换未生效:错误日志显示当前Node版本为
v18.17.1,与你所说的12.11.1不符,执行以下命令重新确认并切换:
若切换后版本未变更,需检查终端是否为新打开的会话(nvm切换仅对当前终端有效),或是否存在全局Node版本干扰。nvm list # 查看已安装的Node版本 nvm use 12.11.1 # 切换到目标版本 node -v # 验证当前版本是否为12.11.1
错误解决方案
方法1:临时设置环境变量启动
在启动项目的终端中先设置环境变量,再执行启动命令:
- Windows(PowerShell):
$env:NODE_OPTIONS="--openssl-legacy-provider" ng serve - Windows(CMD):
set NODE_OPTIONS=--openssl-legacy-provider ng serve - macOS/Linux:
export NODE_OPTIONS=--openssl-legacy-provider ng serve
方法2:修改启动脚本永久生效
在Angular项目的package.json中,修改scripts字段的启动命令:
"scripts": { "start": "NODE_OPTIONS=--openssl-legacy-provider ng serve", // 保留其他原有脚本 }
之后直接执行npm start即可启动项目。
方法3:匹配Angular版本与Node版本
不同Angular版本对Node版本有明确要求:
- Angular 8~10:推荐Node 12.x
- Angular 11:推荐Node 12.x/14.x
- Angular 12+:推荐Node 14.x及以上
若你的Angular版本较新,强行使用Node 12.x可能引发兼容性问题,建议查看项目package.json中@angular/core的版本,安装对应推荐的Node版本。
内容的提问来源于stack exchange,提问作者Kalyan Chakravarthi
相关产品推荐
相关产品推荐

