Синхронизация содержательных изменений в сборке localhost gatsby без повторного запуска `gatsby -velop` - PullRequest
1 голос
/ 21 апреля 2020

Я играю с довольным Гэтсби стартером . У меня все настроено так, что я могу вносить изменения в контент с полным содержанием, и веб-крючок публикует их на удаленном сайте Netlify, и все, что мне нужно сделать, это обновить sh сайт netlify, чтобы увидеть последние изменения CMS. Локально, однако, чтобы увидеть изменения CMS, мне нужно ctrl-c с yarn develop и перезапустить упаковщик. Есть ли способ сохранить это в syn c, так что все, что мне нужно сделать, это обновить sh страницу? (или даже лучше, HMR).

1 Ответ

1 голос
/ 21 апреля 2020

Вы ищете переменные среды. У Gatsby есть куча из них, зарезервированных для того, чтобы делать то, что вам нужно (и даже больше).

Gatsby предоставляет /__refresh webhook, который может получать POST-запросы для обновления sh исходного контента. Этот открытый веб-крючок может запускаться всякий раз, когда изменяются удаленные данные, что означает, что вы можете обновить свои данные, не перезапуская сервер разработки.

Прежде всего вам необходимо разрешить Gatsby использовать переменные среды, добавив этот фрагмент в ваш gatsby-config.js (приведенный выше экспорт модуля):

require("dotenv").config({
  path: `.env.${process.env.NODE_ENV}`,
})

Затем вам нужно установить true зарезервированную переменную среды, о которой я упоминал ранее (ENABLE_GATSBY_REFRESH_ENDPOINT), добавив в develop команда, в вашей package.json,

      "scripts": {
        "develop": "ENABLE_GATSBY_REFRESH_ENDPOINT=true gatsby develop",
      }

Теперь ваши изменения синхронизируются с помощью /__refresh. В соответствии с их документами:

Вы можете запустить эту конечную точку локально, например, в операционных системах на основе Unix (таких как Ubuntu и MacOS), используя curl -X POST http://localhost:8000/__refresh.

Дополнительную информацию можно найти в их документах .

...