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

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

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


1
1 121
3

Ответы:

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

  • вы должны быть на самом деле в автономном режиме
  • 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`

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

Using Contentful Offline cache ⚠️

Cache may be invalidated if you edit package.json, gatsby-node.js or gatsby-config.js files


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

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


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

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

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

Шаги по обновлению CONTENTFUL_ACCESS_TOKEN с контентного портала:

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