Как включить GATSBY_CONTENTFUL_OFFLINE=true
в GatsbyJS для доступа к контенту в автономном режиме?
документация предлагает export GATSBY_CONTENTFUL_OFFLINE=true
.
Пробовал добавить в конфиг, но все равно не работает. Может ли кто-нибудь сказать мне, где добавить этот экспорт или еще, если функциональность действительно работает?
Это работает, но:
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
с контентного портала:
Content Delivery API - access token
и вставьте в свой .env.development
файл. сохрани это.