繁体   English   中英

错误:端口 5000 未打开,无法启动功能模拟器

[英]Error: Port 5000 is not open, could not start functions emulator

✔ 部署完成!

项目控制台: https://console.firebase.google.com/project/socialape-6b2f7/overview Ayhan-MacBookPro:socialape-functions macbook$ ZBF12E1515C2413AB9D8C0352F

=== 服务于“/Users/macbook/Desktop/socialape-functions”...

错误:端口 5000 未打开,无法启动功能模拟器。

运行lsof -t -i tcp:5000 | xargs kill lsof -t -i tcp:5000 | xargs kill从您的终端lsof -t -i tcp:5000 | xargs kill

当 Firebase 模拟器未完全关闭(例如,关闭在嵌入式终端会话中运行模拟器的 IDE)时,会发生此错误的常见原因。这将使进程在后台运行并占用模拟器的默认端口。

要解决冲突,请从终端命令行找到在端口(此处为 5000)上运行的进程 ID,然后将其终止。

上面的 one-liner 找到进程 ID 并直接通过管道将其kill (h/t @manav )。

有关其他信息,请查看: 在 Mac 上查找(并终止)进程锁定端口 3000

这个错误似乎不是你的结局

它是由依赖项(节点端口查找器)中的错误引起的。

编辑它的快速修复可能是使用旧版本的节点 portfinder (v 1.0.21)。 或者,您可以通过编辑 node_modules/firebase-tools/lib/emulator/controller.js 并将 yield pf.getPortPromise({ port, stopPort: port }) 更改为 yield pf.getPortPromise({ port, stopPort: port + 1 })。

您可以在SO 链接中完全看到您的问题的答案。

如果您在 macOS Pro 中遇到此问题,那么此解决方案适合您。

在 MacOS 中,新的“AirPlay 接收器”可能会占用端口 5000。 这可以在设置 -> 共享中禁用:

我还添加了设置面板的屏幕截图以禁用 AirPlay 接收器。

禁用 AirPlay 接收器(如果您不需要它)会释放端口 5000。

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM