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