Metro Bundler无法启动。 (代码:EACCES)

时间:2018-06-18 10:01:58

标签: react-native expo create-react-native-app

我正在运行ubuntu 18.04

尝试使用exp start启动我的展示服务器时,我得到了这个(我还尝试过exp start -cexp start -c --tunnelexp start --tunnel)。

我明白了:

felix:~/job/App (dev) $ exp start
[11:50:59] Using project at /home/felix/job/App
[11:51:08] Scanning folders for symlinks in /home/felix/job/App/node_modules (8ms)
[11:51:08] Starting Metro Bundler on port 19001.
[11:51:08] Metro Bundler ready.
[11:51:08] Successfully ran `adb reverse`. Localhost urls should work on the connected Android device.
[11:51:10] Tunnel ready.
[11:51:10] Expo is ready.

[11:51:10] Your URL is: exp432e0186c47243658eeef37602b6c1c4://10.114.17.163:19000
[11:51:10] Logs for your project will appear below. Press Ctrl+C to exit.
[11:51:15] Metro Bundler failed to start. (code: EACCES)

我尝试重新安装expo,节点模块,metro。我删除了.expo文件,以便重新生成。

我(我认为)对我的所有文件都有正确的权限。我在我的主目录中拥有repo,我不知道expo是否在我的根目录中创建了任何文件。

Mabye有办法检查地铁捆绑机失败的确切位置并抛出错误吗?

值得注意的是,如果我使用create-react-native-app创建一个新应用并使用exp start启动服务器,那么它可以正常运行!!所以我的这个回购中出现了问题?具有相同操作系统的其他人可以通过简单克隆仓库并使用exp start启动它来实现此目的。

4 个答案:

答案 0 :(得分:1)

sudo exp start过去已为我解决了此问题。 EACCES通常与基于权限的错误有关

答案 1 :(得分:0)

我解决了。问题是metro bundler(构建你的js文件的程序)无法连接到我的android模拟器。这是因为模拟器是由root用户创建的,因此metro bundler没有正确的权限,因此它引发了EACCES错误。

我所做的是用我的用户权限创建一个新的Android模拟器,然后它工作。

答案 2 :(得分:0)

您同样可以以管理员身份运行命令提示符并执行

net stop http

然后执行

net start http

重新启动所有端口以确保其不存在连接问题

答案 3 :(得分:0)

您可以运行:

sudo expo start --tunnel