Добавление пользовательского файла .env.staging
в приложение Create-React-App
При разработке React-приложения общий сценарий состоит в том, чтобы иметь три среды развертывания:
- Местный: для местного развития.
- Staging: онлайн-зеркало производственной среды.
- Производство: живое приложение, которое обслуживает конечных пользователей.
В вашей архитектуре также могут быть другие среды развертывания, такие как среда тестирования, разработки или подготовки к производству.
Это означает, что вашему приложению, скорее всего, потребуется как минимум три разных файла .env
. Однако приложение Create-React-App поддерживает только ограниченный и предопределенный набор .env
файлов.
Теперь давайте узнаем, как настроить несколько пользовательских .env
файлов для вашего приложения React.
Настройка нескольких пользовательских файлов .env в приложении Create-React-App
Приложения Create-React-App используют react-scripts
. Если вы не знакомы с тем, как файлы .evn
работают в react-scripts
, загляните в раздел Какие другие файлы .env можно использовать? в документации по созданию приложения React. Там вы можете узнать, какие .env
файлы поддерживает react-scripts
и как он их использует.
Теперь давайте узнаем, как настроить собственный файл .env.staging
в вашем приложении React. Обратите внимание, что следующий подход можно легко распространить на любой другой пользовательский файл .env
. Кроме того, это решение позволяет вам иметь несколько пользовательских файлов .env
.
1. Начало работы
Приложение Create-React-App инициализируется следующим разделом scripts
в файле package.json
:
"scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" }
react-scripts
поддерживает только определенный набор файлов .env
. Эти файлы .env
используются во время сборки при развертывании вашего приложения.
Итак, если вы хотите, чтобы ваше приложение Create-React-App с пользовательскими файлами .env
создавалось правильно, вам необходимо настроить команду build
. В частности, вам нужно заменить его на собственный скрипт сборки. Таким образом, вы можете преодолеть ограничения react-scripts
, когда речь идет о .env
файлах.
2. Создание пользовательского сценария сборки
Сначала создайте файл build.sh
в корневом каталоге вашего проекта. Инициализируйте его следующим образом:
Здесь .env.local
удаляется, а .env.production
заменяется на .env.staging
, когда переменная среды ENV
равна «staging». Таким образом, react-scripts build
увидит пользовательский файл .env.staging
как .env.production
и будет использовать его при создании приложения.
Обратите внимание, что вы можете распространить этот подход на несколько переменных среды, просто повторив логику if ... fi
и изменив условие теста.
Теперь вам нужно обновить package.json
, чтобы он вызывал пользовательский скрипт build.sh
на build
. Вы можете добиться этого следующим образом:
"scripts": { // ... "build": "bash build.sh", // ... }
При запуске npm run build
будет запущен файл build.sh
. Поскольку buld.sh
содержит команду react-script build
, приложение будет построено так же, как и раньше. Но с логикой управления файлами .env
, определенной до команды react-script
.
3. Установка переменной среды ENV на ваших серверах развертывания
На этом этапе все, что вам нужно сделать, это установить переменную среды ENV
на промежуточном сервере развертывания. В Linux вы можете добиться этого с помощью следующей команды:
export ENV=staging
И вуаля! Вы только что узнали, как использовать пользовательские файлы .env
в приложении React Create-React-App. Обратите внимание, что вы можете настроить пользовательские файлы .env
также в Next.js.
Заключение
В этой статье вы узнали, как настроить приложение React для поддержки нескольких пользовательских файлов .env
. Приложения Create-React-App имеют некоторые ограничения, когда речь идет о файлах .env
. Поэтому, если у вас есть другие среды развертывания, отличные от ожидаемых react-scripts
, вам необходимо реализовать пользовательскую логику, чтобы включить поддержку пользовательских файлов .env
. Здесь вы узнали, как это сделать.
Спасибо за прочтение! Я надеюсь, что вы нашли эту статью полезной. Не стесняйтесь оставлять любые вопросы, комментарии или предложения.
Повышение уровня кодирования
Спасибо, что являетесь частью нашего сообщества! Перед тем, как ты уйдешь:
- 👏 Хлопайте за историю и подписывайтесь на автора 👉
- 📰 Смотрите больше контента в публикации Level Up Coding
- 🔔 Подписывайтесь на нас: Twitter | ЛинкедИн | "Новостная рассылка"
🚀👉 Присоединяйтесь к коллективу талантов Level Up и найдите прекрасную работу