React 无法在任何根目录中找到入口文件

React cannot find entry file in any of the roots

我在 iOS 项目中使用 React Native 作为 Pod。 当我尝试加载我使用 React Native 创建的视图时,出现错误屏幕,将我指向终端 window,其中 npm 是 运行ning.

在终端中,我看到的错误是: 错误:无法在任何根中找到条目文件:

我尝试了一些方法,将文件移动到不同的位置,但没有成功。 我做了 运行 "npm start",我正在寻找“http://localhost:8081/”中的文件。 文件的当前位置与我 运行 "npm start" 来自的位置相同。

我完全卡在这里了。 我是不是配置错了。我如何从这里排除故障?

有这个问题:

https://github.com/facebook/react-native/issues/541

这似乎是一回事。那里的用户似乎表示他们之前从该目录中获得了 运行 项目,这让我想知道这是否是由于先前 运行 中挂起或遗留的打包程序造成的?尝试关闭终端 window 并重新 运行 设置 Xcode 项目。

总的来说,这听起来像是打包程序没有按预期生成文件的问题。终端中是否还有其他消息 window?

很抱歉回答我自己的问题(有点蹩脚),但我希望它能帮助别人。

显然我们需要 运行 通过提供替代路径的 npm 命令。

npm run start -- --root <directory_with_your_react_component_js_sources>

http://facebook.github.io/react-native/docs/embedded-app.html#content 上有关于如何将 React Native 集成到现有应用程序中的指南。

在 bash 终端之一中检查节点服务器 运行ning,这可能是由您之前启动的 ReactNative XCode 项目踢的。停止该进程并 运行 XCode 再次项目,这应该可以解决问题。

当 React 想要使用已被其他应用程序使用的端口时,就会发生这种情况。由于 React 侦听端口 8081,因此您可以在该端口上输入 运行ning 进程 Shell:

lsof -n -i4TCP:8081

你会得到这样的答案:

COMMAND   PID      USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME

node 28571 username 32u IPv6 0x742e2ab233abdb9f 0t0 TCP *:sunproxyadmin (LISTEN)

刚刚通过输入 shell 杀死了它 kill -9 <PID>。使用上一个答案中提供的相同 PID。

然后 运行 npm start.

在杀死所有节点进程并 运行 执行上面的命令后,我的设置仍然无法正常工作,这让我有点沮丧,我想更新这个。

目前似乎有一个 ReactNative open issue:https://github.com/facebook/react-native/issues/14246

这个问题的解决方案是杀死外部启动的包管理器和项目文件夹中的运行 "npm start"

检查您的 AppDelegate.m 中是否有 index.iosindex:

jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil];

我有 index,我之前使用的是 index.iosindex.android,所以这就是它失败的原因。

根据我的经验,这是因为 Watchman 和 Jest。

我找到的解决方案是 添加

name = name.replace('/', '\');

到'node_modules\jest-haste-map\build\crawlers\watchman.js'

您可以在此处查看更多信息 Watchman not working with React Native