Как заставить данные refre sh в Gatsby JS, когда я использую плагин Source, который вызывает REST API без перезапуска Gatsby? - PullRequest
0 голосов
/ 11 марта 2020

Возможно ли и как заставить Gatsby JS перезагрузить внешние данные? Либо, отключив кэширование или ограничив TTL в кеше?

У меня есть Gatsby JS, работающий gatsby develop, и он будет немедленно перезагружать изменения кода, но он подключается к внешнему API REST через выборку с использованием источника плагин. Данные в GraphQL не обновляются после загрузки данных во время сборки / первой загрузки.

Я использую запросы staticQuery (...) и нестати c, оба ведут себя одинаково. Я ожидаю, что stati c не будет обновляться, но обычный запрос запускается один раз и навсегда кешируется.

С gatsby-site / gatsby- node.js

exports.createPages = async ({graphql, actions}) => {
    const pages = await graphql(`
         ...
    `);

Вопросы I Не удалось найти полезные ответы на ...

  • Можно ли вообще отключить кеширование?
  • Можно ли ограничить срок хранения данных?
  • Это в памяти или, если на диске есть папка, я могу удалить ее?

Вся помощь и идеи ценны. Я не смог найти никаких других связанных вопросов, и даже руководства по gatsby js .org указывают на перезапуск сервера при изменении данных.

1 Ответ

0 голосов
/ 11 марта 2020

Это работает, но, вероятно, не масштабируется.

  1. Запустите Gatsby с ENABLE_GATSBY_REFRESH_ENDPOINT=true gatsby develop или поместите настройку в файл .env
  2. Используйте curl -X POST http://localhost:8000/__refresh для вызова полного refre sh.
  3. В качестве альтернативы, заставьте его повторно вызывать ловушку, чтобы периодически вызывать refre sh с помощью watch -n5 "curl -X POST http://localhost:8000/__refresh" (каждые 5 секунд в этом случае настраивайте по необходимости) или помещайте его в crontab для необслуживаемый refre sh с более длинными интервалами.

Изменения в исходных данных теперь будут отражаться за счет ударов по источнику. Мне это нужно было только для разработки, и, возможно, это не очень хорошая идея для производственного использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...