为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

1 回答

?
子衿沉夜

TA贡献1828条经验 获得超3个赞

您正在寻找环境变量。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。


查看完整回答
反对 回复 2022-07-08
  • 1 回答
  • 0 关注
  • 104 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号