25

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

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

我尝试了几件事,将文件移动到不同的位置,但没有运气。我确实运行了“npm start”,并且正在“ http://localhost:8081/ ”中寻找文件。文件的当前位置与我运行“npm start”的位置相同。

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

4

7 回答 7

30

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

于 2015-05-26T06:45:00.730 回答
23

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

显然,我们需要通过提供替代路径来运行 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 集成到现有应用程序中的指南。

于 2015-04-01T11:52:56.647 回答
12

当 React 想要使用一个已经被其他应用程序使用的端口时,就会发生这种情况。由于 React 侦听端口 8081,因此您可以让进程在该端口上运行,在 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

于 2016-01-05T18:54:23.413 回答
4

有这个问题:

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

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

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

于 2015-04-01T11:49:16.773 回答
1

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

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

解决方案是杀死外部启动的包管理器,然后在项目文件夹中运行“npm start” 。

于 2017-06-08T20:44:00.683 回答
0

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

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

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

于 2018-01-18T15:08:55.527 回答
0

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

我找到的解决方案是添加

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

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

你可以在这里查看更多信息 Watchman not working with React Native

于 2018-09-13T14:49:04.883 回答