Vue项目执行npm run serve/build时出现openssl初始化错误求助
Vue项目执行npm run serve/build时出现ERR_OSSL_EVP_UNSUPPORTED错误的解决方案
错误原因
Node.js v18.x及以上版本默认启用OpenSSL 3.0的严格算法规则,旧版本Vue CLI(4.x及以下)依赖的webpack使用了已被弃用的MD4算法,触发SSL初始化错误。
解决方案
1. 临时单次运行(无需修改配置)
根据操作系统选择对应命令:
- Windows(cmd):
或set NODE_OPTIONS=--openssl-legacy-provider && npm run serveset NODE_OPTIONS=--openssl-legacy-provider && npm run build - Windows(PowerShell):
$env:NODE_OPTIONS="--openssl-legacy-provider"; npm run serve - Linux/macOS:
或NODE_OPTIONS=--openssl-legacy-provider npm run serveNODE_OPTIONS=--openssl-legacy-provider npm run build
2. 修改package.json脚本(永久生效)
直接修改项目根目录下package.json的scripts字段,给serve/build命令添加环境变量:
- 跨平台写法(先安装
npm i cross-env -D):"scripts": { "serve": "cross-env NODE_OPTIONS=--openssl-legacy-provider vue-cli-service serve", "build": "cross-env NODE_OPTIONS=--openssl-legacy-provider vue-cli-service build" } - Windows原生写法:
"scripts": { "serve": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve", "build": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build" }
3. 升级依赖(长期根治方案)
升级Vue CLI或webpack到适配Node.js 18+的版本:
- 升级Vue CLI服务:
npm update @vue/cli-service -D - 直接升级webpack:
npm update webpack -D
内容的提问来源于stack exchange,提问作者ASHafizullah
相关产品推荐
相关产品推荐

