我正在运行ubuntu 18.04
我在尝试使用exp start
启动我的 expo 服务器时得到这个(我也尝试过exp start -c
、exp start -c --tunnel
、exp 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
文件,以便可以重新生成它。
我(我认为(对我的所有文件都有正确的权限。我确实在我的主目录中拥有存储库,我不知道 expo 是否在我的根目录中创建了任何文件。
Mabye 有一种方法可以准确检查地铁捆绑器失败并抛出错误的位置?
值得注意的是,如果我使用create-react-native-app
创建一个新应用程序并使用exp start
启动服务器,那么它可以工作!!所以我的这个回购有问题吗?具有相同操作系统的其他人可以通过简单地克隆存储库并使用exp start
启动它来使其工作。
sudo exp start
过去已经为我解决了这个问题。EACCES 通常与基于权限的错误有关
我解决了。问题是地铁捆绑器(构建 js 文件的程序(无法连接到我的 android 模拟器。这是因为模拟器是由root用户创建的,因此metro捆绑器没有正确的权限,因此它抛出了EACCES
错误。
我所做的是在用户许可下创建一个新的 android 模拟器,然后它起作用了。
您同样可以以管理员身份运行命令提示符并执行
net stop http
然后执行
net start http
重新启动所有端口以确保它不是连接问题
您可以运行:
sudo expo start --tunnel