Ember 服务:每个端口都在使用中

Ember serve: every port is in use

当我未指定端口或明确设置端口时,我总是看到:

ember serve --port 4207
Port 4207 is already in use.

我选择哪个端口似乎并不重要。

当我从端口 0 开始(让 cli 选择一个可用端口)时,它从大约 30000~40000 开始。

我在 Mac。我刚刚将 ember-cli 升级到 3.12.0

另外:如果我在本地启动另一个 ember 应用程序,它会在端口 4200 上 运行。但是我停止它并启动上面的应用程序,它不会启动港口.

这里有什么问题?

portfinder 是 Ember CLI 的子依赖,几个小时前(2019 年 8 月 17 日)发布了新版本 1.0.22。那个坏了ember serve。您将看到所有端口的端口正在使用错误。

如果您不确定项目中使用的 portfinder 版本,您可以 运行 yarn why portfindernpm list | grep portfinder.

更新portfinder@1.0.23 于今天(2019 年 8 月 19 日)发布。它回滚到 1.0.21 并因此解决了问题。您应该升级到那个新版本。

portfinder.

的新版本已过时以下变通办法

目前已知有两个变通方法:

1.正在将 portfinder 降级为 1.0.21

您可以使用 yarn's resolutions feature 来做到这一点。将此添加到您的 package.json:

"resolutions": {
  "ember-cli/portfinder": "1.0.21"
}

之后别忘了运行yarn install

如果使用 npm,您可以使用 --before option 强制安装今天之前发布的依赖项:npm install --before 2019-08-16

2。使用 ember serve --port 0

您可以使用 --port 0 参数开始 ember serve。在这种情况下,portfinder 会选择一个随机端口。这似乎有效。使用的端口在终端中报告,例如

Build successful (1911ms) – Serving on http://localhost:18780/

错误已报告 here。希望能尽快解决。