执行npm audit fix --force后React项目启动报错(OpenSSL相关)求助
解决 npm audit fix --force 导致的 OpenSSL "digital envelope routines::unsupported" 错误
临时快速修复(无需修改配置)
根据你的操作系统,在终端/命令行里先执行环境变量设置,再启动项目:
- Windows(CMD):
set NODE_OPTIONS=--openssl-legacy-provider npm start - Windows(PowerShell):
$env:NODE_OPTIONS="--openssl-legacy-provider" npm start - Linux/macOS:
export NODE_OPTIONS=--openssl-legacy-provider && npm start
永久修复(修改启动脚本)
直接修改项目根目录的package.json,在启动命令前添加环境变量配置:
找到scripts里的start字段,修改成类似这样(根据你的项目启动命令调整):
"scripts": { "start": "NODE_OPTIONS=--openssl-legacy-provider react-scripts start" }
修改完成后,直接运行npm start即可,不用每次手动设置环境变量。
回退依赖/Node版本(彻底解决兼容性)
恢复到强制更新前的依赖状态
如果你的项目用git管理,直接回退到执行npm audit fix --force前的版本:git restore package.json package-lock.json rm -rf node_modules npm install要是没使用git,就手动把
package.json里被强制升级的依赖版本改回教程指定的版本,再重新安装依赖。降级Node.js版本
这个错误本质是新版Node.js(v17+)的OpenSSL算法和旧依赖不兼容,你可以用nvm(Node版本管理器)切换到v16.x系列版本:nvm install 16 nvm use 16 rm -rf node_modules package-lock.json npm install npm start
错误原因说明
npm audit fix --force会强制升级所有存在安全漏洞的依赖,不管这些升级会不会破坏项目兼容性。你遇到的OpenSSL错误,是因为升级后的依赖和当前Node.js版本(v17+)默认的OpenSSL加密算法不兼容导致的。
内容的提问来源于stack exchange,提问作者Game0verZeus
相关产品推荐
相关产品推荐

