Gatsby develop 命令在 macOS High Sierra 上失败,没有显示错误消息

Gatsby develop command fails on macOS High Sierra, no error message shown

我是 Gatsby 的新手,刚开始阅读网站的教程 here。但是,我在 运行 gatsby develop 命令时遇到了一些麻烦,因为它抛出一个错误并且只显示这条消息,没有其他信息:

Looks like develop for this site is already running, can you visit http://://localhost:8000 ? If it is not, try again in five seconds!

当我点击 http://localhost:8000 时,页面只显示 localhost refused to connect。

下面是gatsby info -C的输出:

  System:
    OS: macOS High Sierra 10.13.6
    CPU: (4) x64 Intel(R) Core(TM) i5-2415M CPU @ 2.30GHz
    Shell: 3.2.57 - /bin/bash
  Binaries:
    Node: 14.4.0 - ~/.nvm/versions/node/v14.4.0/bin/node
    npm: 6.14.5 - ~/.nvm/versions/node/v14.4.0/bin/npm
  Languages:
    Python: 2.7.14 - /usr/local/bin/python
  Browsers:
    Chrome: 85.0.4183.102
    Safari: 11.1.2   
  npmPackages:
    gatsby: ^2.24.54 => 2.24.54   
  npmGlobalPackages:
    gatsby-cli: 2.12.94

我也试过卸载和安装gatsby-cli,但问题依然存在。还使用 lsof -i TCP:8000 检查端口 8000 上是否有任何 运行,但没有任何结果。

如果有人能阐明问题的根源,我将不胜感激!

PS:我试过运行gatsby buildgatsby serve,没有遇到问题。

您很可能必须在 firewall 上打开端口 8000

在 OSX 这应该是 pfctl & /etc/pf.conf

这是因为 OS firewall 的端口。您可以通过向默认的 Gatsby 运行 命令(在您的 package.json 中)添加一个端口来轻松修复它:

gatsby develop -p 8001

注意 -p 标志,正如您在 the documentation 中看到的那样,它改变了 Gatsby 的 运行 端口。当然,您可以为任何需要的(和未使用的)端口更改 8001。更改它不会影响 Gatsby 项目,因为它会重新调整 GraphQL 游乐场。