Env variables Flashcards
Env variables
env files
Переменные окружения (env variables) - переменные, используемые операционной системой и программами для хранения конфигурационных данных. Они хранят информацию, нужную приложению для корректной работы, например, параметры подключения к базе данных, API-ключи, настройки сервера и т.д.
Преимущества использования переменных окружения:
- безопасность: хранение чувствительной информации (например, токенов, паролей, ключей) вне исходного кода позволяет избежать утечек данных при публикации или совместной работе над проектом;
- удобство развертывания: при развертывании приложения на различных платформах (например, локально, на сервере или в облаке) можно использовать те же самые переменные окружения, что упрощает процесс настройки и запуска;
- конфигурация: переменные окружения позволяют легко изменять конфигурацию приложения без изменения исходного кода. Например, можно иметь разные настройки для разработки, тестирования и продакшн-среды.
Основные типы окружений, используемые в процессе разработки:
- разработка (Development): начальная среда, где разработчики пишут и тестируют код;
- тестирование (Staging): промежуточная среда, максимально похожая на продакшн, где код проверяется на наличие ошибок и багов;
- продакшн (Production): окончательная среда, где приложение используется конечными пользователями.
Создание:
Так как чаще всего хранится секретная информация для файлов, то лучше отправить в игнор env
Сохранение токенов авторизации и API-ключей в исходном коде, особенно в публично доступных репозиториях, представляет собой серьёзную угрозу безопасности, поэтому мы будем хранить Authorization token и API-KEY в .env файле. В реальных проектах baseURL также хранится в переменных окужениях.
Переменные окружения в Vite (https://vite.dev/guide/env-and-mode) должны начинаться с VITE_ для доступа к ним в коде.
- Создайте в корневой директории проекта файл .env;
- Добавьте env files в .gitignore:
В файл git ignore:
.env
.env.local
.env.development.local
.env.test.local
.env.production.local - Внесите в файл .env переменные окружения, заменив XXX на нужные значения из файла common/instance/instance.ts:
VITE_BASE_URL=https://social-network.samuraijs.com/api/1.1
VITE_AUTH_TOKEN=XXX
VITE_API_KEY=XXX
Пишем без кавычек и пробелов
Если создаем переменные окружения на других проектах Next, React и тд, то нам обязательно необходимо перезапустить приложение
- В файле common/instance/instance.ts используйте переменные окружения:
export const instance = axios.create({
baseURL: import.meta.env.VITE_BASE_URL,
headers: {
Authorization:Bearer ${import.meta.env.VITE_AUTH_TOKEN}
,
“API-KEY”: import.meta.env.VITE_API_KEY,
},
})