使用create-react-app创建React项目时依赖安装失败求助
首先来看你遇到的报错信息:
安装包中,这可能需要几分钟时间。正在安装react、react-dom和react-scripts...
yarn add v1.3.2
info 未找到lockfile。
[1/4] 解析包中...
error 未找到匹配"^1.1.0"版本的"require-from-string"
info 访问https://yarnpkg.com/en/docs/cli/add查看该命令的文档。
Error: 从注册表获取"timed-out"的响应格式错误,注册表可能已宕机。
at MessageError (C:\Program Files (x86)\Yarn\lib\cli.js:139:5)
at C:\Program Files (x86)\Yarn\lib\cli.js:48907:15
at next (native)
at step (C:\Program Files (x86)\Yarn\lib\cli.js:92:30)
at C:\Program Files (x86)\Yarn\lib\cli.js:110:14
at new Promise (C:\Program Files (x86)\Yarn\lib\cli.js:93093:7)
at C:\Program Files (x86)\Yarn\lib\cli.js:89:12
at Function.findVersionInRegistryResponse (C:\Program Files (x86)\Yarn\lib\cli.js:48946:7)
at C:\Program Files (x86)\Yarn\lib\cli.js:48963:28
at next (native)
Aborting installation.
从这些错误来看,你用create-react-app创建React项目时栽在了yarn的依赖安装上——两个核心问题:找不到匹配版本的require-from-string,还有timed-out的注册表响应格式错误。这俩问题大概率是因为你用的yarn版本太老(v1.3.2),再加上可能的npm registry访问波动导致的。给你整理了一步步的解决办法:
升级yarn到最新稳定版
你现在用的yarn v1.3.2是2017年的老版本,对新的依赖版本解析规则、registry协议的支持都跟不上,这是导致依赖找不到的主要原因。执行这条命令升级:npm install -g yarn升级完可以敲
yarn --version确认下版本是不是更新了。清除yarn缓存
旧缓存里可能存了损坏的依赖信息,清掉它能避免后续解析出错:yarn cache clean切换到国内npm镜像(可选但强烈推荐)
如果是国内用户,访问官方npm registry经常会出现超时、格式错误这类问题,切换到国内镜像能大幅提升安装稳定性:yarn config set registry https://registry.npmmirror.com重新创建React项目
先把之前创建失败的项目目录删掉(如果有的话),然后重新执行创建命令:npx create-react-app my-react-app要是你指定想用yarn管理依赖,可以加个参数:
npx create-react-app my-react-app --use-yarn
额外说明
- 报错里提到的
require-from-string@^1.1.0是react-scripts依赖的包,旧版本yarn没法正确解析这个版本范围,升级yarn后就能解决。 - 那个
timed-out的注册表错误,要么是网络不稳定,要么是老版本yarn的网络请求逻辑有问题,升级+换镜像基本能搞定。
内容的提问来源于stack exchange,提问作者Roy




