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

使用npx react-native init创建React Native项目时终端无输出卡住的问题求助

问题分析:RN初始化卡住,create-react-app正常——是npm还是React Native的问题?

嘿,我来帮你拆解这个困惑~其实这个情况既和npm的机制有关,也和React Native初始化的特殊性脱不开关系,具体来说:

为什么create-react-app正常,RN init却卡住?

  • create-react-app的依赖结构相对简单,大部分都是常规npm包,而且很多依赖可能已经在你的本地npm缓存里了,它的初始化流程也不需要额外下载原生平台的模板或二进制文件,所以对网络和npm配置的要求更低,不容易触发卡住的情况。
  • 而npx react-native init不一样:它不仅要安装npm依赖,还要下载iOS/Android的原生项目模板、Hermes引擎这类预编译二进制文件,甚至会处理一些平台专属的可选依赖。这些资源的下载链路和普通npm包不同,对网络稳定性的要求更高,也更容易触发npm的异常处理逻辑。

你看到的rollbackFailedOptional是什么?

这个日志是npm在处理可选依赖时的操作:当某个可选依赖下载失败,npm会尝试回滚已进行的操作,但如果网络波动频繁、包源访问不畅,这个回滚过程可能会陷入等待循环,导致终端长时间卡在这个状态。React Native的初始化依赖了不少这类可选依赖(比如针对不同操作系统的构建工具),所以更容易触发这个问题。

到底是npm还是React Native的问题?

  • npm是直接触发因素:它的缓存策略、可选依赖的处理逻辑,以及默认包源的网络稳定性,是导致卡住的核心原因——如果你的npm缓存有污染,或者默认源访问速度慢,就会在处理依赖时出现长时间等待的情况。
  • React Native是场景触发原因:它的初始化流程需要更多非标准npm资源,对网络和npm配置的敏感度更高,这就是为什么同样用npx,create-react-app能正常运行,而RN init却卡住的关键。

给你几个针对性的解决建议

既然你之前试过一些方案没用,可以试试这些:

  • 先清空npm缓存,再带详细日志执行初始化:
    npm cache clean --force
    npx react-native init project-name --verbose
    
    加--verbose能看到具体卡在哪一步,方便排查问题。
  • 切换到国内npm镜像(解决网络问题):
    npm config set registry https://registry.npmmirror.com
    npm config set react-native-cli_mirror https://npmmirror.com/mirrors/react-native-cli/
    npm config set metro-binary-mirror https://npmmirror.com/mirrors/metro-binary/
    
  • 手动指定一个稳定的RN版本,避免最新版本的依赖问题:
    npx react-native init project-name --version 0.72.0
    
  • 试试用yarn代替npm,它的依赖处理逻辑有时候更高效:
    yarn create react-native-app project-name
    

内容的提问来源于stack exchange,提问作者Ala Eddine Menai

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 19:27:37