我将我的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等。
答案 0 :(得分:4)
因此我遇到了这个问题,经过一番挖掘之后,我意识到由于某种原因,我的新Mac的/etc/hosts
文件为空。 iOS上的React Native(以及运行run-ios
或run-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文件夹,然后重新运行项目:
cd iOS
rm -r build
cd ..
react-native run-ios
代码将顺利运行。