Angular项目构建报错ERR_OSSL_EVP_UNSUPPORTED及CLI问题求助
Angular构建报错ERR_OSSL_EVP_UNSUPPORTED及CLI版本问题解决
问题描述
构建Angular 11项目时触发ERR_OSSL_EVP_UNSUPPORTED错误,同时存在全局Angular CLI版本(15.0.4)高于本地版本(11.2.19)的警告;在Windows环境下执行export NODE_OPTIONS=--openssl-legacy-provider时提示命令不识别。已尝试重装Node.js和Angular CLI,问题未解决。
一、解决ERR_OSSL_EVP_UNSUPPORTED错误
该错误源于Node.js 16+版本默认启用的OpenSSL算法,与Angular 11依赖的旧版Webpack(4.x)不兼容,按操作系统分别处理:
Windows环境
- CMD终端:先执行以下命令设置环境变量,再运行构建命令
set NODE_OPTIONS=--openssl-legacy-provider ng build
- PowerShell终端:
$env:NODE_OPTIONS="--openssl-legacy-provider" ng build
Linux/Mac环境
终端执行:
export NODE_OPTIONS=--openssl-legacy-provider ng build
永久生效设置
不想每次手动输入的话,可以把环境变量加入系统配置:
- Windows:右键「此电脑」→ 属性 → 高级系统设置 → 环境变量 → 新建系统变量,变量名
NODE_OPTIONS,变量值--openssl-legacy-provider - Linux/Mac:编辑
~/.bashrc或~/.zshrc,添加export NODE_OPTIONS=--openssl-legacy-provider,执行source ~/.bashrc生效
二、解决Angular CLI版本不匹配问题
全局CLI版本高于本地版本会触发警告,可二选一处理:
- 统一CLI版本:若需保留本地Angular 11,全局安装对应版本CLI
npm uninstall -g @angular/cli npm install -g @angular/cli@11.2.19
- 关闭版本警告:无需统一版本的话,执行命令关闭警告
ng config -g cli.warnings.versionMismatch false
三、版本命令补充说明
Angular CLI 14及以上版本,ng --version命令已废弃,需改用ng version查看版本信息。
内容的提问来源于stack exchange,提问作者sonal
相关产品推荐
相关产品推荐

