【问题标题】:Metro Bundler runs every time in new windowMetro Bundler 每次在新窗口中运行
【发布时间】:2018-07-02 07:16:21
【问题描述】:

我将我的 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 install、移除 ios/build、再次运行 ios 等等。

【问题讨论】:

    标签: react-native


    【解决方案1】:

    所以我遇到了这个问题,经过大量挖掘后,我意识到由于某种原因,我的新 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
    

    真的,你只需要第一行,但通常主机文件有这三个,所以我把它们都放在那里,以防其他任何东西混淆。

    【讨论】:

    • 谢谢,这就是给我的!
    【解决方案2】:

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

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

    代码会顺利运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-07
      相关资源
      最近更新 更多