npm启动报ERR_OSSL_EVP_UNSUPPORTED,Node版本显示不一致且未装对应版本
解决npm start报错ERR_OSSL_EVP_UNSUPPORTED且Node版本显示不一致的问题
1. 先查npm实际调用的Node版本
执行以下命令,确认npm用的Node版本是否和全局的20.9.0一致:
npm exec which node npm config get node_version
如果输出是21.2.0,说明npm绑定了其他版本的Node,并非你全局的20.9.0。
2. 强制npm使用全局Node版本+修复openssl错误
- 先把npm的Node版本配置改成20.9.0:
npm config set node_version 20.9.0
- 针对openssl兼容问题,修改启动命令:
React项目直接改package.json里的start脚本:
普通Node项目改成:"start": "react-scripts start --openssl-legacy-provider"
或者临时启动时直接加参数:"start": "node --openssl-legacy-provider ./your-entry-file.js"npm start -- --openssl-legacy-provider
3. 清理缓存并重装依赖
如果上面的操作没效果,清掉缓存和本地依赖再试:
npm cache clean --force rm -rf node_modules package-lock.json npm install
4. 检查版本管理器残留
如果用了nvm、volta这类工具:
- 查看项目根目录有没有
.nvmrc、.volta文件,里面可能指定了21.2.0,直接删掉或者改成20.9.0 - 用nvm的话,执行
nvm current看当前版本,不对就切换:
nvm use 20.9.0
- 检查系统PATH,确保20.9.0的Node路径排在最前面,删掉其他可能存在的21.2.0路径
5. 验证修复结果
重新执行npm start,查看错误信息里的Node版本是否变为20.9.0,同时确认openssl错误是否消失。
内容的提问来源于stack exchange,提问作者vish
相关产品推荐
相关产品推荐

