如何修复Angular的opensslErrorStack: ERR_OSSL_EVP_UNSUPPORTED错误
解决Angular项目ng serve时出现ERR_OSSL_EVP_UNSUPPORTED错误
这个错误是因为Node.js 17及以上版本默认启用OpenSSL 3.0,而旧Angular项目的依赖仍依赖OpenSSL 1.1.x的加密算法,导致兼容性冲突。以下是几种解决方法:
临时启动方案:
- Linux/macOS终端:执行
NODE_OPTIONS=--openssl-legacy-provider ng serve - Windows CMD:执行
set NODE_OPTIONS=--openssl-legacy-provider && ng serve - Windows PowerShell:执行
$env:NODE_OPTIONS="--openssl-legacy-provider"; ng serve
- Linux/macOS终端:执行
永久修改启动脚本:
- 打开项目根目录下的
package.json文件 - 找到
scripts中的serve命令,修改为:"serve": "NODE_OPTIONS=--openssl-legacy-provider ng serve" - 若需跨平台兼容,先安装
cross-env依赖:npm install cross-env --save-dev,再修改脚本为:"serve": "cross-env NODE_OPTIONS=--openssl-legacy-provider ng serve"
之后直接运行
npm run serve即可。- 打开项目根目录下的
升级Node.js版本:
如果项目依赖允许,升级到Node.js 18.x及以上的LTS版本,新版本已修复该OpenSSL兼容性问题,升级后直接执行ng serve即可正常启动。
内容的提问来源于stack exchange,提问作者Roshini
相关产品推荐
相关产品推荐

