Как включить флаг для GATSBY_CONTENTFUL_OFFLINE=true?

Как включить GATSBY_CONTENTFUL_OFFLINE=true в GatsbyJS для доступа к контенту в автономном режиме?

Документация предлагает export GATSBY_CONTENTFUL_OFFLINE=true, Я попытался добавить его в конфигурации, но все равно он не работает. Может кто-нибудь сказать мне, где добавить этот экспорт или еще, если функциональность действительно работает?

2 ответа

Вы бы использовали export … в вашем.bashrc или аналогичном. Вы экспортируете объявление переменной из сценария оболочки в сеанс оболочки, делая его доступным в качестве переменной среды. Это избавляет вас от необходимости объявлять переменную при каждом вызове gatsby [command],

Вы также можете использовать .env.development объявить это значение (без export) и Гэтсби подберет его, или вы можете использовать .env с настроенным пакетом dotenv.

Это работает, но:

  • Вы должны быть на самом деле в автономном режиме
  • NODE_ENV не является production (иначе gatsby build)

Смотрите реализацию здесь

Поэтому я думаю, что это просто удобный флаг, который позволит вам развиваться без подключения к интернету. Я не уверен, что документ имел в виду export ..., но так как они проверяют process.env.GATSBY_CONTENTFUL_OFFLINEвы можете установить его, добавив его к любой команде, которую вы запускаете в терминале (игнорируйте $):

$ gatsby develop
# GATSBY_CONTENTFUL_OFFLINE is undefined

$ GATSBY_CONTENTFUL_OFFLINE=true gatsby develop
# GATSBY_CONTENTFUL_OFFLINE is true

$ GATSBY_CONTENTFUL_OFFLINE=true gatsby build
# GATSBY_CONTENTFUL_OFFLINE is true, but contenful doesn't care
# because NODE_ENV is always set to `production`

При этом (после выключения вашей сети) вы должны увидеть это в консоли:

Использование Contentful Offline кеша ⚠️

Кэш может быть признан недействительным, если вы редактируете файлы package.json, gatsby-node.js или gatsby-config.js

Я пробовал вышеуказанные решения, но у меня это не сработало. У меня была совсем другая проблема. Я никогда не использовал gatsby до.

Итак, сначала я установил gatsby затем я проверил CONTENTFUL_ACCESS_TOKEN в .env.development. Маркер доступа у него был такой же, как у CONTENTFUL_SPACE_ID.

Итак, я обновил CONTENTFUL_ACCESS_TOKEN и это сработало.

Шаги по обновлению CONTENTFUL_ACCESS_TOKEN из содержательного портала:

  1. Я перешел на содержательный портал. и выбрал мое пространство на левой панели.
  2. Перешел в настройки -> Ключи API
  3. В разделе "Параметры токенов доставки / предварительного просмотра контента" я выбрал имя ключа (если у вас несколько ключей, сопоставьте spaceId)
  4. Копировать Content Delivery API - access token и вставьте его в свой .env.developmentфайл. сохрани это.
  5. Затем запустите Gatsby Develop
Другие вопросы по тегам