Build 如何检测盖茨比是否为构建输出服务?

Build 如何检测盖茨比是否为构建输出服务?,build,environment-variables,gatsby,production-environment,Build,Environment Variables,Gatsby,Production Environment,我想知道是否可能,以及如何检测运行的代码是否是盖茨比的构建输出,由盖茨比服务提供。 当我启动gatsby-service时,浏览器会在localhost:9000/上打开,我需要根据某种环境变量或其他方式更改代码。我正在寻找最惯用的方法,如果可能的话,而不是像阅读window.location对象这样的黑客。 提前感谢当您gatsby build时,gatsby会在项目的public文件夹中创建项目的生产就绪版本。这意味着您可以使用public文件夹并将代码部署到http服务器。您无法“检测”此

我想知道是否可能,以及如何检测运行的代码是否是盖茨比的
构建
输出,由
盖茨比服务
提供。 当我启动
gatsby-service
时,浏览器会在
localhost:9000/
上打开,我需要根据某种环境变量或其他方式更改代码。我正在寻找最惯用的方法,如果可能的话,而不是像阅读
window.location
对象这样的黑客。
提前感谢

当您
gatsby build
时,gatsby会在项目的
public
文件夹中创建项目的生产就绪版本。这意味着您可以使用
public
文件夹并将代码部署到http服务器。您无法“检测”此代码中的任何特殊属性<代码>盖茨比建造是
盖茨比建造

我看到的唯一方法是当您使用
盖茨比发球时检测标准
盖茨比发球
端口号
:9000
。看

您可以从Gatsby实现的reach/router API获得。我不确定它是否实现了Mozilla文档中提到的相同方法。你应该试试这个

const index = ({ location }) => {

  console.log(location.port);

  // ...
}

另外,您也可以按照本文所述解析URL字符串。

感谢您花时间回复。是的,我知道build文件夹就是production live网站上的文件夹。你的解决方案也是我所想的,阅读位置。。。我将稍等片刻,看看盖茨比是否内置了某种机制来检测盖茨比服务是否正在运行,如果我没有得到任何其他响应,我会将您的回答标记为正确答案。为了添加一点上下文,我问了这个问题,因为我正在启用
data blockingmode=“auto”
属性。这只适用于我在cookiebot上配置的域。由于使用免费计划,我只能设置一个域,因此无法添加
localhost:9000
。作为cookiebot无法识别的域,当我运行
gatsby serve
时,我所有的/gatsby javascript甚至都不会执行,因此在部署它之前,我无法真正看到生产构建是否正常工作。我花了4天时间才明白这个愚蠢的错误(,基本上没有问题。这为我的问题指明了正确的方向。谢谢。