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

React Native项目eject后执行npm start终端无QRCode显示求助

解决Create React Native App Eject后npm start不显示QR码的问题

我懂你这种困惑!之前用create-react-native-app创建的项目明明npm start能正常显示QR码,执行npm run eject之后就没了,确实挺闹心的。让我给你捋清楚原因和解决办法:

为什么QR码会消失?

当你执行npm run eject时,你的项目会从Expo托管工作流切换到裸工作流(或纯React Native项目):

  • 原来的npm start调用的是Expo CLI的启动命令,它会生成供Expo Go扫描的QR码,方便快速在设备上运行;
  • 而eject之后,package.json里的start脚本会被替换成react-native start——这是启动Metro Bundler(React Native的打包工具)的命令,它默认不会显示QR码,因为裸工作流更偏向于通过原生开发工具(Xcode/Android Studio)或专用的运行命令来启动应用。

具体解决办法

方案1:用Expo CLI启动,找回QR码

如果你还是想通过QR码在Expo Go里运行项目(适用于Expo裸工作流),可以这么做:

  1. 先确保全局安装了Expo CLI:
    npm install -g expo-cli
    
  2. 用Expo的命令启动项目:
    expo start
    
    执行完这个命令,终端就会重新显示QR码,你可以用手机上的Expo Go扫描它来运行应用。

方案2:适配纯React Native项目的启动方式

如果你已经完全切换到纯React Native项目(没有Expo依赖),QR码其实不是必需的,你可以用原生项目的启动命令:

  • 针对iOS设备/模拟器:
    react-native run-ios
    
    这个命令会自动启动iOS模拟器,同时连接Metro Bundler;如果要在真机运行,记得提前在Xcode里配置好签名。
  • 针对Android设备/模拟器:
    react-native run-android
    
    同样会启动Android模拟器或连接真机,启动后摇晃设备打开开发者菜单,就能确认Metro的连接地址是否正确。

方案3:修改package.json脚本(一劳永逸)

如果你想让npm start直接回到显示QR码的状态,可以修改package.json里的scripts部分,把start命令改成调用Expo CLI:

"scripts": {
  "start": "expo start",
  // 其他脚本(比如android、ios等)保持不变即可
}

修改之后,再执行npm start就会自动调用Expo CLI,终端也会显示QR码了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:25:38