Metro Bundler每次在新窗口中运行

时间:2018-07-02 07:16:21

标签: react-native

我将我的react-native项目移到了另一台Mac,但现在我无法运行它,也找不到任何解决方案。现在,当我运行react-native run-ios时构建成功,但是它总是打开新窗口来启动Metro Bundler。

我已经使用react-native start运行Metro Bundler,并且在以下消息中保持正常运行:Metro Bundler ready.Loading dependency graph, done.

但是,每次运行react-native run-ios时,即使其中一个已经在运行,它也会打开一个新窗口来启动Metro Bundler。结果为红色屏幕,显示消息No bundle URL present.

即使我关闭使用react-native start运行的Metro Bundler并仅执行react-native run-ios并成功运行它自己的捆绑器,也会发生这种情况。

我为什么会有这种行为的任何想法?

我已经尝试删除node_modules,npm安装,删除ios / build,再次运行ios等。

2 个答案:

答案 0 :(得分:4)

因此我遇到了这个问题,经过一番挖掘之后,我意识到由于某种原因,我的新Mac的/etc/hosts文件为空。 iOS上的React Native(以及运行run-iosrun-android时启动捆绑程序的脚本)在localhost:8081而不是127.0.0.1:8081处查找捆绑程序,但环回为文件不存在,因此无法正常工作。要点是,我创建了/etc/hosts/并添加了以下几行:

127.0.0.1            localhost
::1                  localhost
255.255.255.255      broadcasthost

真的,您只需要第一行,但通常hosts文件中包含这三行,因此我将它们全部放在其中,以防其他任何事情引起混淆。

答案 1 :(得分:0)

您需要清除ios目录中的build文件夹,然后重新运行项目:

  1. cd iOS
  2. rm -r build
  3. cd ..
  4. react-native run-ios

代码将顺利运行。