开发者问题收集

Metro Bundler 启动失败。(代码:EACCES)

2018-06-18
5322

我正在运行 ubuntu 18.04

当我尝试使用 exp start 启动 expo 服务器时,我得到了此信息(我也尝试过 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、node 模块、metro。我删除了我的 .expo 文件,以便可以重新生成它。

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

也许有办法检查 metro bundler 失败并抛出错误的具体位置?

值得注意的是,如果我使用 create-react-native-app 创建一个新应用程序并使用 exp start 启动服务器,那么它就可以正常工作!!那么我的这个 repo 是不是出了什么问题?使用相同操作系统的其他人只需克隆 repo 并使用 exp start 启动它即可使其正常工作。

3个回答

sudo exp start 过去曾帮我修复过这个问题。EACCES 通常与基于权限的错误有关

Llama D'Attore
2019-01-15

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

我所做的是使用我的用户权限创建一个新的 android 模拟器,然后它就成功了。

mrfr
2018-06-18

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

net stop http

然后执行

net start http

重新启动所有端口,以确保它不是连接问题

Vine
2018-10-25