如何检测Gatsby是否在提供构建输出?

问题描述 投票:1回答:1

我想知道是否有可能,以及如何检测正在运行的代码是否是build提供的gatsby的gatsby serve输出。当我启动gatsby serve时,浏览器将在localhost:9000/上打开,我需要根据某种环境变量或其他方式更改代码。我正在寻找最惯用的方法,如果可能的话,不要像读取window.location对象这样的骇客。在此先感谢

build environment-variables gatsby production-environment
1个回答
0
投票

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

我看到的唯一方法是在您gatsby serve时检测是否使用标准:9000端口号gatsby serve。参见Mozilla docs

您可以从Gatsby实现的范围/路由器API中获得location props。我不确定它是否实现与Mozilla文档中提到的方法相同的方法。您应该尝试一下。

const index = ({ location }) => {

  console.log(location.port);

  // ...
}

作为替代,您可以按照此answer中的描述来解析URL字符串。

© www.soinside.com 2019 - 2024. All rights reserved.