Angular项目执行ng serve编译失败,报ERR_OSSL_EVP_UNSUPPORTED错误求助
解决Angular项目ng serve时的ERR_OSSL_EVP_UNSUPPORTED错误
这个错误是Node.js v17+版本默认启用OpenSSL 3.0严格算法规则,而旧版Angular项目的依赖(如Webpack、Angular CLI)未适配该规则导致的哈希算法兼容性问题,以下是针对性解决方案:
临时启动方案(单次生效)
根据你的操作系统,在终端执行对应命令启动项目:
- Windows(CMD):
set NODE_OPTIONS=--openssl-legacy-provider && ng serve - Windows(PowerShell):
$env:NODE_OPTIONS="--openssl-legacy-provider"; ng serve - macOS/Linux:
NODE_OPTIONS=--openssl-legacy-provider ng serve
永久配置方案(无需每次输入)
修改项目根目录的package.json文件中的scripts字段,将start命令替换为对应系统的命令:
- Windows环境:
"scripts": { "start": "set NODE_OPTIONS=--openssl-legacy-provider && ng serve", // 其他脚本保持不变 } - macOS/Linux环境:
"scripts": { "start": "NODE_OPTIONS=--openssl-legacy-provider ng serve", // 其他脚本保持不变 }
之后直接运行npm start即可正常启动项目。
降级Node.js版本(终极方案)
如果上述方法仍无效,可通过Node版本管理器(nvm)将Node.js降级到v16.x LTS版本(该版本使用OpenSSL 1.1.1,无此兼容问题):
nvm install 16 nvm use 16
重新安装依赖后再运行ng serve即可。
内容的提问来源于stack exchange,提问作者Mrunalsinh Jadeja
相关产品推荐
相关产品推荐

