Как показывает код, он использует process.env.SHOP_NAME
, где SHOP_NAME
- имя переменной окружения . Эти файлы объявлены в root проекта с использованием некоторых имен, таких как .env.domain1.com
. В этом файле вы можете сохранить любую нужную переменную для использования в ваших конфигурациях Gatsby. При работе с деликатными переменными (ключами API, токенами, паролями и т. Д. c) рекомендуется использовать этот способ и игнорировать все файлы .env
в вашем .gitignore
.
Когда вы запускаете команду в Gatsby Вы можете передать ему несколько переменных, например:
"develop": "GATSBY_ACTIVE_ENV=domain1.com gatsby develop"
В этом случае GATSBY_ACTIVE_ENV
var будет иметь domain1.com
в качестве значения. Затем в вас gataby-config.js
, когда вы можете использовать переменные среды (выше module.exports
):
require("dotenv").config({
path: `.env.${process.env.NODE_ENV}`,
})
Затем вы можете создать файл среды, такой как .env.domain1.com
, в вашем проекте root и сохраните любую нужную переменную:
SHOP_NAME: 12345
С учетом предоставленного вами кода, если вы запустите команду develop
(со всем, что я объяснил), она будет SHOP_NAME
равной 12345.
Итак, отвечая на ваш вопрос, у вас не будет доступа к этим токенам. Вам нужно хранить их на вашем локальном компьютере и на вашем сервере развертывания, а не в вашем хранилище . Из документации Gatsby:
Обратите внимание, что вы не должны передавать файлы .env. * В систему контроля версий, а лучше использовать параметры, предоставленные вашим поставщиком непрерывного развертывания (CD) ...
Редактировать : Спасибо @Hans Martin Henken за предоставление следующей статьи о безопасности Гэтсби