Гэтсби - Невозможно установить переменные среды - PullRequest
0 голосов
/ 04 мая 2018

В моем gatsby-config.js я использовал пакет dotenv для установки переменных env

require("dotenv").config({
  path: `.env.${process.env.DEPLOY_ENV}`,
});

, а затем в моем package.json сценарий для развертывания в различных средах

"deploy:staging": "DEPLOY_ENV=staging gatsby build --prefix-paths && s3-deploy ..."

В моем src/html.js есть актив, который я хочу включить

<script src={`//${process.env.ASSET_HOST}/app.js`}></script>

Когда я регистрирую DEPLOY_ENV из gatsby-config.js, он устанавливается на staging, однако, когда я регистрирую process.env в src/html.js, ASSET_HOST устанавливается как тот, что в моем файле .env.production, поэтому при развертывании в промежуточном режиме используются ресурсы с моего рабочего хоста.

1 Ответ

0 голосов
/ 07 мая 2018

Я думаю DEPLOY_ENV (как NODE_ENV) - зарезервированная переменная окружения. Вот почему DEPLOY_ENV=staging не работает в вашем случае.

В документах Гэтсби о переменных среды рекомендуется использовать вторичную переменную среды для поддержки дополнительной среды.

Вы можете добавить файл .env.staging в свою корневую папку, куда вы положите ASSET_HOST env var.

Затем запустите Гэтсби с ACTIVE_ENV=staging gatsby develop

...