You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行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版本(彻底解决兼容性)

  1. 恢复到强制更新前的依赖状态
    如果你的项目用git管理,直接回退到执行npm audit fix --force前的版本:

    git restore package.json package-lock.json
    rm -rf node_modules
    npm install
    

    要是没使用git,就手动把package.json里被强制升级的依赖版本改回教程指定的版本,再重新安装依赖。

  2. 降级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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 22:10:35