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

如何复制旧React项目创建新项目并解决ERR_OSSL_EVP_UNSUPPORTED错误

不用重新运行create-react-app,复制旧项目创建新项目的方法及错误修复

一、正确复制旧React项目创建新项目的步骤

  • 只复制旧项目里的核心文件:src/目录、public/目录、package.json、package-lock.json(或yarn.lock),不要复制node_modules/和.git/目录(不需要旧项目Git历史的话)
  • 进入新项目文件夹,运行npm install(或yarn install),lock文件会帮你安装和旧项目完全一致的依赖,本地有缓存的话直接调用,不会额外消耗带宽
  • 如果需要全新的Git仓库,执行git init初始化即可

二、解决ERR_OSSL_EVP_UNSUPPORTED错误

这个错误是Node.js v17+版本和旧版webpack/react-scripts不兼容导致的——Node.js v17默认启用了新的OpenSSL哈希算法,而旧版构建工具不支持该算法,以下三种解决办法:

方法1:临时启动时添加环境变量

根据你的终端类型选择对应命令:

  • Windows CMD:
set NODE_OPTIONS=--openssl-legacy-provider && npm start
  • Windows PowerShell:
$env:NODE_OPTIONS="--openssl-legacy-provider"; npm start
  • macOS/Linux:
NODE_OPTIONS=--openssl-legacy-provider npm start

方法2:修改package.json的启动脚本

直接在package.json的scripts字段中修改命令,把环境变量嵌入进去:

"scripts": {
  "start": "set NODE_OPTIONS=--openssl-legacy-provider && react-scripts start",
  "build": "set NODE_OPTIONS=--openssl-legacy-provider && react-scripts build",
  "test": "react-scripts test",
  "eject": "react-scripts eject"
}

macOS/Linux用户把set替换成export即可

方法3:降级Node.js版本

用nvm(Node版本管理器)将Node.js版本降到v16或更低,就能避开这个兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 02:02:16