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

Node.js报digital envelope routines::unsupported错误,如何仅用npm start启动项目?

解决React项目启动时的ERR_OSSL_EVP_UNSUPPORTED错误

这个错误是因为Node.js 17及以上版本默认启用了新的OpenSSL加密算法,但你的项目里webpack、babel-loader这类依赖版本偏旧,不支持该算法导致的。既然手动设置NODE_OPTIONS=--openssl-legacy-provider能正常启动,下面是不用每次手动输入前置命令的解决方案:

方案1:直接修改package.json的启动脚本(分系统)

打开项目根目录的package.json,找到scripts里的start命令,根据你的操作系统修改:

  • Linux/macOS:
    将原来的启动命令改成:
    "scripts": {
      "start": "NODE_OPTIONS=--openssl-legacy-provider react-scripts start"
    }
    
  • Windows(CMD命令行):
    改成:
    "scripts": {
      "start": "set NODE_OPTIONS=--openssl-legacy-provider && react-scripts start"
    }
    

方案2:跨平台通用方案

如果需要在不同系统都能正常运行,可以用cross-env统一环境变量设置:

  1. 先安装依赖:
    npm install cross-env --save-dev
    
  2. 修改package.json的start脚本:
    "scripts": {
      "start": "cross-env NODE_OPTIONS=--openssl-legacy-provider react-scripts start"
    }
    

方案3:升级项目依赖(彻底解决)

如果不想依赖环境变量,可以尝试升级项目里的相关依赖到支持新OpenSSL算法的版本:

  • 升级react-scripts(如果是create-react-app创建的项目):
    npm install react-scripts@latest
    
  • 或者单独升级webpack、babel-loader:
    npm install webpack@latest babel-loader@latest --save-dev
    

注意:升级依赖可能会引发其他兼容性问题,建议先备份项目或在测试分支操作,升级后全面测试功能。

内容的提问来源于stack exchange,提问作者Hayaz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 17:10:12