Що допомагає робити цей форматувальник .env
- Нормалізуйте рядки `KEY=VALUE`, зберігаючи коментарі та порожні рядки для зручного групування
- Очищуйте пробіли навколо `=` та значень для легшого сканування та компактніших diff при переглядах
- Виявляйте дублікати ключів, щоб бачити, який з них дійсно використовується під час виконання, замість здогадок
- Обрізайте кінцеві пробіли та (за бажанням) забезпечте кінцевий перехід на новий рядок через опцію **Вставити кінцевий перехід на новий рядок**
- Зберігайте рядки коментарів (`# ...`) та залишайте лапкові символи `#` всередині значень недоторканими
- Зберігайте заповнювачі на кшталт `${VAR}` та екрановані послідовності точно так, як написані, без виконання розширення
- Добре працюйте з крос-платформними проектами, нормалізуючи розмітку для LF/CRLF та уникаючи сюрпризів BOM
- Легко отримуйте безсекретний `.env.example` (копіюйте ключі та структуру, видаліть виробничі значення)
- Зручний редактор: вставте або завантажте файли у стилі `.env`, перегляньте результат, потім скопіюйте або завантажте очищений вивід
🔧 Як очистити та відформатувати ваш .env файл for env-formatter
1. Вставте або завантажте ваш .env
Перетягніть ваш файл `.env` у редактор або вставте вміст безпосередньо. Інструмент розроблений для типових форматів dotenv, таких як `.env`, `.env.local`, `.env.production`, `.env.test`, `.env.staging`, `.env.example` тощо.
2. Перегляньте та налаштуйте опції форматування
Увімкніть або вимкніть доступні опції (як **Вставити фінальний перенос рядка**) та вирішіть, як ви хочете організувати ключі та коментарі. Багато команд використовують цей крок для забезпечення послідовного групування — наприклад, секції `APP_`, `DB_`, `NEXT_PUBLIC_`.
3. Попередній перегляд, копіювання або завантаження
Перегляньте очищений результат, переконайтеся, що дублікати та коментарі виглядають правильно, потім скопіюйте його назад у ваш редактор або завантажте відформатований `.env`. Використовуйте нормалізовану структуру як основу для `.env.example` чи інших варіантів середовища.
Технічні характеристики
Підтримувані файли та типи
Форматер обробляє стандартні файли конфігурації у стилі dotenv, включаючи загальні угоди фреймворків.
| Розширення / Паттерн | Тип | Типове використання |
|---|---|---|
| .env | Базова конфігурація | Типові налаштування для всіх середовищ |
| .env.local | Локальні перевизначення | Машинно-специфічні (зазвичай ігноруються git) |
| .env.development | Варіант середовища | Налаштування розробки |
| .env.production | Варіант середовища | Налаштування розгортання |
| .env.test | Варіант середовища | CI / модульні тести |
| .env.staging | Варіант середовища | Конфігурації стадії тестування або попереднього перегляду |
| .env.example / .env.sample | Шаблон | Спільний приклад файлу без реальних секретів |
| MIME-типи | text/plain, text/x-dotenv, application/x-env | Поширені типи вмісту, що використовуються редакторами та інструментами |
Правила парсингу (у стилі dotenv)
Форматер розроблений для сумісності з популярними парсерами dotenv у різних мовах програмування.
| Аспект | Поведінка | Примітки |
|---|---|---|
| Ключі | Чутливі до регістру, зазвичай `A–Z`, цифри та `_` | Для читабельності рекомендується UPPER_SNAKE_CASE |
| Присвоєння | Рядки у форматі `KEY=VALUE` | Пробіли навколо `=` та значень нормалізуються форматером |
| Коментарі | Рядки, що починаються з `#` | `#` у лапках вважається частиною значення |
| Лапки | Одинарні `'…'` або подвійні `"…"` | Екранування як `\n` та `\t` зберігається у подвійних лапках |
| Інтерполяція | `${VAR}` зберігається буквально | Розширення чи обчислення на кшталт shell не виконується |
| Порожні рядки | Зберігаються для підтримки логічних розділів | Ви можете вручну згортати чи перегруповувати за потребою |
| Дублікати | Кілька рядків з одним ключем відображаються | Типова поведінка dotenv: останнє значення має пріоритет під час виконання |
Нормалізація та переноси рядків
Форматер прагне зменшити платформозалежний шум у diff: пробіли навколо `=`, зайві пробіли в кінці та фінальні переноси рядків можуть бути нормалізовані. Опція **Вставити фінальний перенос рядка** гарантує новий рядок у кінці файлу, щоб Git та різні редактори залишалися синхронізованими навіть при відмінностях LF/CRLF.
Конфіденційність та безпека
Форматування обробляється безпечним серверним компонентом, призначеним для цього інструменту, і призначене лише для тимчасової обробки—жодні сторонні API не використовуються. Однак найбезпечнішою практикою залишається уникати вставки виробничих секретів у браузерні інструменти: краще редагувати очищені файли `.env.example` та зберігати справжні секрети у сховищі або CI secret store.
Альтернативи командного рядка та фрагменти
Віддаєте перевагу терміналу? Ось кілька будівельних блоків для імітації деякої поведінки цього форматера за допомогою звичайних інструментів CLI.
Linux/macOS
Сортування ключів (базове, ігнорує коментарі/порожні рядки)
grep -v '^\s*#' .env | grep -v '^\s*$' | sort > sorted.envАлфавітно сортує рядки без коментарів, щоб ключі конфігурації були легшими для перегляду та порівняння.
Вирівнювання по `=` за допомогою awk
awk -F '=' 'BEGIN{max=0} /^[[:space:]]*#/||NF<2{next} {gsub(/[[:space:]]+$/,"",$1); if(length($1)>max) max=length($1)} END{print max}' .env | xargs -I{} awk -F '=' -v w={} 'BEGIN{OFS="="} /^[[:space:]]*#/||NF<2{print; next} {k=$1; sub(/[[:space:]]+$/,"",k); v=substr($0,index($0,"=")+1); gsub(/^\s+|\s+$/,"",v); printf("% -" w "s = %s\n", k, v)}' .env > aligned.envДвоетапний awk-скрипт, який вимірює найширший ключ, а потім вирівнює всі призначення `КЛЮЧ = ЗНАЧЕННЯ` за цією шириною.
Windows (PowerShell)
Сортування та видалення дублікатів ключів (збереження останнього значення)
(Get-Content .env) | Where-Object {$_ -notmatch '^\s*#' -and $_ -notmatch '^\s*$'} | Group-Object { $_.Split('=')[0].Trim() } -AsHashTable -AsString | ForEach-Object { $_.Value[-1] } | Set-Content cleaned.envГрупує рядки за ключем і записує лише останнє входження, відображаючи спосіб, яким більшість завантажувачів dotenv вирішують дублікати.
Node.js (крос-платформний)
Мінімалістичний форматер: парсинг, сортування, вирівнювання, запис
node -e "const fs=require('fs');const s=fs.readFileSync('.env','utf8');const lines=s.split(/\r?\n/);const kv=[];const others=[];for(const l of lines){if(!l||/^\s*#/.test(l)||!l.includes('=')){others.push(l);continue;}const i=l.indexOf('=');kv.push([l.slice(0,i).trim(),l.slice(i+1).trim()]);}kv.sort((a,b)=>a[0].localeCompare(b[0]));const w=Math.max(...kv.map(([k])=>k.length),0);const out=[...kv.map(([k,v])=>k.padEnd(w)+" = "+v),...others];fs.writeFileSync('formatted.env',out.join('\n'));"Компактний Node-скрипт, який можна адаптувати для виділеного форматера локального або CI використання.
Поширені випадки використання .env форматера
Готовність до продакшену та гігієна
- Виявлення випадкових дублікатів ключів перед розгортанням критичних сервісів
- Нормалізація пробілів та символів нового рядка в кінці файлу для уникнення зайвих diff-ів
- Стандартизація структури перед генерацією `.env.example` або шаблонів секретів
# Production .env
NODE_ENV=production
API_URL=https://api.example.com
LOG_LEVEL=infoКомандна співпраця та онбординг
- Зменшення шуму в PR шляхом застосування канонічного макету .env у всіх сервісах
- Коміт чистого `.env.example` замість реальних секретів для безпечнішого онбордингу
- Допомога новим членам команди швидко побачити всі необхідні ключі конфігурації
# .env.example
API_URL=
API_KEY=
DEBUG=falseCI та контроль якості
- Додавання перевірки для гарантії, що дублікати ключів не потраплять у гілки `main` або `master`
- Провал збірок, якщо файли `.env` порушують базові правила форматування або іменування
- Збереження фокусу переглядів конфігурації на значеннях та семантиці, а не на деталях пробілів
❓ Frequently Asked Questions
Як обробляються дублікати ключів?
Чи зберігаються коментарі та порожні рядки?
Чи розгортаються посилання на ${VAR}?
Чи безпечно вставляти реальні секрети?
API. Тим не менш, найбезпечнішою практикою є уникати вставки продакшен-секретів у будь-який браузерний інструмент: комітьте лише санізовані файли `.env.example` і покладайтеся на виділений менеджер секретів або сховище секретів CI для реальних значень.Як щодо проблем CRLF vs LF та BOM?
Чи впливає це на те, як моя програма читає env-файл?
Pro Tips
Ніколи не додавайте справжні секрети до Git. Додавайте `.env.example` з ключами та безпечними підказками, а реальні значення завантажуйте зі сховища, CI-сховища секретів або локальних перевизначень.
Групуйте ключі за доменами (`APP_`, `DB_`, `NEXT_PUBLIC_` тощо) та зберігайте кожну групу в послідовному порядку, щоб зменшити когнітивне навантаження для нових читачів.
Запровадьте єдиний канонічний стиль .env через pre-commit хуки або CI-перевірки, щоб вам ніколи не довелося сперечатися про пробіли під час код-рев'ю.
Лапте значення, що містять пробіли, `#`, `=` або символи, зарезервовані для shell, щоб уникнути непомітних проблем парсингу в різних реалізаціях dotenv.
Additional Resources
Other Tools
- Прикрашувач CSS
- Прикрашувач HTML
- Прикрашувач JavaScript
- Прикрашувач PHP
- Вибір кольору
- Екстрактор спрайтів
- Декодер Base64
- Кодувальник Base64
- Форматувальник C#
- Форматувальник CSV
- Dockerfile Formatter
- Форматувальник Elm
- Форматувальник Go
- Форматувальник GraphQL
- Форматувальник HCL
- Форматувальник INI
- Форматувальник JSON
- Форматувальник LaTeX
- Форматувальник Markdown
- Форматувальник Objective-C
- Php Formatter
- Форматувальник Proto
- Форматувальник Python
- Форматувальник Ruby
- Форматувальник Rust
- Форматувальник Scala
- Форматувальник shell-скриптів
- Форматувальник SQL
- Форматер SVG
- Форматер Swift
- Форматер TOML
- Typescript Formatter
- Форматер XML
- Форматер YAML
- Форматер Yarn
- Мініфікатор CSS
- Html Minifier
- Javascript Minifier
- Мініфікатор JSON
- Мініфікатор XML
- Переглядач HTTP-заголовків
- PDF у текст
- Тестер регулярних виразів
- Перевірка позицій у SERP
- Пошук Whois