Парсер файлов окружения
Файлы окружения (.env) хранят конфигурацию в виде пар ключ-значение, отделяя секреты и настройки от кода. Популяризированные методологией twelve-factor app, они используются в экосистемах Node.js, Python, Ruby и других. Этот инструмент разбирает файлы .env и отображает переменные в структурированном виде.
Спецификации
Типичные сценарии использования
- Просмотр конфигурации окружения приложения
- Валидация синтаксиса файла .env перед развёртыванием
- Сравнение файлов окружения между средами (dev, staging, prod)
- Конвертация переменных окружения в JSON для документации
- Просмотр конфигурации без её раскрытия в логах
Возможности
- Разбор пар KEY=value в различных форматах
- Обработка значений в кавычках (одинарных и двойных)
- Пропуск комментариев (#) и пустых строк
- Переключатель показа/скрытия секретов (маскирует ключи, содержащие password, token, api, secret и т.д.)
- Конвертация в JSON и YAML для программного использования
- Отображение количества комментариев
Примеры
Конфигурация приложения
Попробовать →Типичный файл .env с настройками базы данных и API.
# Database configuration
DATABASE_URL=postgres://localhost:5432/myapp
DATABASE_POOL_SIZE=10
# API Keys
API_KEY="sk-1234567890"
SECRET_KEY='super-secret-value'Советы
- Никогда не коммитьте файлы .env в систему контроля версий. Используйте .env.example.
- Значения в кавычках сохраняют начальные/конечные пробелы.
- Некоторые реализации поддерживают подстановку переменных: ${VAR}.
- Используйте отдельные файлы .env для каждой среды: .env.development, .env.production.
Описание Парсер файлов окружения
Файлы переменных окружения (.env) хранят конфигурацию приложения в виде простых пар KEY=VALUE, по одной на строку. Формат был популяризирован методологией twelve-factor app, которая призывает к строгому разделению конфигурации и кода. Вместо жёсткого кодирования URL баз данных, API-ключей и флагов функций приложения считывают их из переменных окружения, а файлы .env обеспечивают удобный способ установки этих переменных во время разработки.
Библиотека dotenv, изначально созданная для Ruby и позднее портированная на Node.js, Python, PHP и практически каждую экосистему, читает файлы .env и внедряет значения в окружение процесса. Формат поддерживает значения без кавычек (DATABASE_HOST=localhost), значения в двойных кавычках с escape-последовательностями (MESSAGE="Hello\\nWorld") и значения в одинарных кавычках, обрабатываемые буквально (REGEX='^\\d+$'). Комментарии начинаются с # и пустые строки игнорируются.
Критически важная практика — никогда не коммитить файлы .env в систему контроля версий, так как они обычно содержат секреты. Вместо этого проекты включают .env.example со списком всех необходимых переменных с заполнителями. CI/CD-системы и хостинг-платформы предоставляют собственные механизмы для безопасной установки переменных окружения.
Подстановка переменных (ссылка на другие переменные с синтаксисом \${VAR}) поддерживается некоторыми реализациями dotenv. Docker Compose поддерживает её нативно. При использовании подстановки убедитесь, что ваша конкретная реализация dotenv её поддерживает, поскольку поведение различается между языками.
Файл .env обычно содержит секреты: пароли баз данных, API-ключи и ключи шифрования. Коммит их в git раскрывает их всем, кто имеет доступ к репозиторию, и они сохраняются в истории git даже после удаления. Добавьте .env в .gitignore и используйте .env.example с заполнителями для документирования необходимых переменных. Значения в двойных кавычках интерпретируют escape-последовательности (\\n становится переносом строки), тогда как значения в одинарных кавычках обрабатываются как сырые литералы без обработки escape-последовательностей. Значения без кавычек обрезают конечные пробелы и заканчиваются на первом символе #, который рассматривается как встроенный комментарий.
Управление несколькими средами обычно включает отдельные файлы .env: .env для значений по умолчанию, .env.local для машинно-специфичных переопределений (не коммитится) и .env.development или .env.production для значений, специфичных для среды. Фреймворки, такие как Next.js, Vite и Create React App, загружают их в определённом порядке приоритета. Для Docker Compose поддерживает env_file для загрузки переменных из файла и ключ environment для их прямой установки. Файл .env в корне проекта Compose используется для подстановки переменных в самом docker-compose.yml. Переменные ARG времени сборки отличаются от переменных ENV времени выполнения и не должны содержать секреты.