在不重新运行“gatsby-develop”的情况下将内容更改同步到

我正在玩gatsby contentful starter。我已经设置好所有内容,以便我可以在内容中进行内容更改,并且 webhook 将这些内容发布到远程 Netlify 站点,我所要做的就是刷新 netlify 站点以查看最新的 CMS 更改。但是,在本地,为了查看 CMS 更改,我必须ctrl-cfromyarn develop并重新启动打包程序。有没有办法保持同步,所以我所要做的就是刷新页面?(甚至更好,HMR)。

鸿蒙传说
浏览 105回答 1
1回答

子衿沉夜

您正在寻找环境变量。Gatsby 保留了其中的一些来做你需要的事情(以及更多)。Gatsby 公开了一个/__refreshwebhook,它能够接收 POST 请求以刷新源内容。只要远程数据发生变化,就可以触发这个暴露的 webhook,这意味着您可以在不重新启动开发服务器的情况下更新数据。首先,您需要通过在您的gatsby-config.js(上面的模块导出)中添加此代码段来允许 Gatsby 使用环境变量:require("dotenv").config({  path: `.env.${process.env.NODE_ENV}`,})然后,您需要通过在您的命令中添加true我之前提到的 ( ) 来设置保留的环境变量,ENABLE_GATSBY_REFRESH_ENDPOINTdeveloppackage.json      "scripts": {        "develop": "ENABLE_GATSBY_REFRESH_ENDPOINT=true gatsby develop",      }现在,您可以使用/__refresh. 根据他们的文档:您可以在本地触发此端点,例如,在基于 Unix 的操作系统(如 Ubuntu 和 MacOS)上使用 curl -X POST http://localhost:8000/__refresh。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript