在不重新 运行 `gatsby-develop` 的情况下将内容更改同步到 localhost gatsby build
Syncing contentful changes to localhost gatsby build without re-running `gatsby-develop`
我正在玩 gatsby contentful starter。我已设置好所有内容,以便我可以在 contentful 中进行内容更改,webhook 将这些内容发布到远程 Netlify 站点,我所要做的就是刷新 netlify 站点以查看最新的 CMS 更改。但是,在本地,为了查看 CMS 的更改,我必须从 yarn develop
ctrl-c
,然后重新启动打包程序。有没有办法让它保持同步,这样我所要做的就是刷新页面? (或者更好,HMR)。
您正在寻找环境变量。 Gatsby 保留了其中的一堆来做你需要的(以及更多)。
Gatsby 公开了一个 /__refresh
webhook,它能够接收 POST 请求以刷新源内容。只要远程数据发生变化,就会触发这个公开的 webhook,这意味着您可以在不重新启动开发服务器的情况下更新数据。
首先,您需要通过在 gatsby-config.js
(模块导出上方)中添加此代码段来允许 Gatsby 使用环境变量:
require("dotenv").config({
path: `.env.${process.env.NODE_ENV}`,
})
然后,您需要通过添加 develop
命令,在 [=17] 中将我之前提到的保留环境变量 (ENABLE_GATSBY_REFRESH_ENDPOINT
) 设置为 true
=],
"scripts": {
"develop": "ENABLE_GATSBY_REFRESH_ENDPOINT=true gatsby develop",
}
现在,您已使用 /__refresh
同步更改。根据他们的文档:
You can trigger this endpoint locally, for example, on Unix-based
operating systems (like Ubuntu and MacOS) using curl -X POST
http://localhost:8000/__refresh
.
您可以在 their docs 中查看更多信息。
我正在玩 gatsby contentful starter。我已设置好所有内容,以便我可以在 contentful 中进行内容更改,webhook 将这些内容发布到远程 Netlify 站点,我所要做的就是刷新 netlify 站点以查看最新的 CMS 更改。但是,在本地,为了查看 CMS 的更改,我必须从 yarn develop
ctrl-c
,然后重新启动打包程序。有没有办法让它保持同步,这样我所要做的就是刷新页面? (或者更好,HMR)。
您正在寻找环境变量。 Gatsby 保留了其中的一堆来做你需要的(以及更多)。
Gatsby 公开了一个 /__refresh
webhook,它能够接收 POST 请求以刷新源内容。只要远程数据发生变化,就会触发这个公开的 webhook,这意味着您可以在不重新启动开发服务器的情况下更新数据。
首先,您需要通过在 gatsby-config.js
(模块导出上方)中添加此代码段来允许 Gatsby 使用环境变量:
require("dotenv").config({
path: `.env.${process.env.NODE_ENV}`,
})
然后,您需要通过添加 develop
命令,在 [=17] 中将我之前提到的保留环境变量 (ENABLE_GATSBY_REFRESH_ENDPOINT
) 设置为 true
=],
"scripts": {
"develop": "ENABLE_GATSBY_REFRESH_ENDPOINT=true gatsby develop",
}
现在,您已使用 /__refresh
同步更改。根据他们的文档:
You can trigger this endpoint locally, for example, on Unix-based operating systems (like Ubuntu and MacOS) using curl -X POST
http://localhost:8000/__refresh
.
您可以在 their docs 中查看更多信息。