公司老项目执行npm run dev报错ERR_OSSL_EVP_UNSUPPORTED求助
解决老旧Vue项目npm run dev报错ERR_OSSL_EVP_UNSUPPORTED
这个错误是因为你使用的Node.js版本(17及以上)默认启用了OpenSSL 3.0,而项目里的旧版Webpack使用的哈希算法(如MD4)在OpenSSL 3.0中被标记为不安全,导致无法正常运行。以下是几种可行的解决方法:
临时单次运行(无需修改配置)
根据你的操作系统选择对应命令:
- Windows(CMD):
set NODE_OPTIONS=--openssl-legacy-provider && npm run dev
- Windows(PowerShell):
$env:NODE_OPTIONS="--openssl-legacy-provider"; npm run dev
- Mac/Linux:
NODE_OPTIONS=--openssl-legacy-provider npm run dev
修改package.json永久解决
直接修改项目package.json中的scripts字段,给dev命令添加环境变量:
- Windows环境:
"scripts": { "dev": "set NODE_OPTIONS=--openssl-legacy-provider && nuxt dev" }
- Mac/Linux环境:
"scripts": { "dev": "NODE_OPTIONS=--openssl-legacy-provider nuxt dev" }
- 跨平台兼容方案(需先安装依赖):
- 安装cross-env依赖:
npm install cross-env --save-dev
- 修改scripts:
"scripts": { "dev": "cross-env NODE_OPTIONS=--openssl-legacy-provider nuxt dev" }
降级Node.js版本
如果不想修改命令,可将Node.js降级到16.x或更低版本(Node.js 16使用OpenSSL 1.1.1,不会触发该问题):
- 安装Node版本管理工具nvm(Windows系统使用nvm-windows)
- 安装16.x版本:
nvm install 16
- 切换到该版本:
nvm use 16
- 重新运行
npm run dev
补充说明
你之前尝试的npm install nuxt、npm install node均为无效操作:
npm install nuxt无法解决Node版本与Webpack的兼容性问题npm install node本身是错误操作,Node.js是全局环境依赖,并非项目依赖包
内容的提问来源于stack exchange,提问作者vitoria
相关产品推荐
相关产品推荐

