Parser plików środowiskowych

Pliki środowiskowe (.env) przechowują konfigurację jako pary klucz-wartość, oddzielając sekrety i ustawienia od kodu. Spopularyzowane przez metodologię twelve-factor app, są używane w ekosystemach Node.js, Python, Ruby i innych. To narzędzie parsuje pliki .env i wyświetla zmienne w widoku strukturalnym.

Specyfikacje

Typowe zastosowania

  • Inspekcja konfiguracji środowiskowej aplikacji
  • Walidacja składni pliku .env przed wdrożeniem
  • Porównywanie plików środowiskowych między środowiskami (dev, staging, prod)
  • Konwersja zmiennych środowiskowych do JSON na potrzeby dokumentacji
  • Przegląd konfiguracji bez ujawniania w logach

Funkcje

  • Parsowanie par KEY=value w różnych formatach
  • Obsługa wartości w cudzysłowach (pojedynczych i podwójnych)
  • Pomijanie komentarzy (#) i pustych linii
  • Przełącznik Pokaż/Ukryj sekrety (maskuje klucze pasujące do password, token, api, secret itp.)
  • Konwersja do JSON i YAML do programowego użycia
  • Wyświetlanie liczby komentarzy

Przyklady

Konfiguracja aplikacji

Wypróbuj →

Typowy plik .env z ustawieniami bazy danych i API.

# Database configuration
DATABASE_URL=postgres://localhost:5432/myapp
DATABASE_POOL_SIZE=10

# API Keys
API_KEY="sk-1234567890"
SECRET_KEY='super-secret-value'

Wskazowki

  • Nigdy nie commituj plików .env do kontroli wersji. Zamiast tego użyj .env.example.
  • Wartości w cudzysłowach zachowują wiodące/końcowe białe znaki.
  • Niektóre implementacje obsługują rozwijanie zmiennych: ${VAR}.
  • Używaj oddzielnych plików .env dla każdego środowiska: .env.development, .env.production.

Zrozumienie Parser plików środowiskowych

Pliki zmiennych środowiskowych (.env) przechowują konfigurację aplikacji jako proste pary KEY=VALUE, po jednej na linię. Format został spopularyzowany przez metodologię twelve-factor app, która zaleca ścisłe oddzielenie konfiguracji od kodu. Zamiast hardkodowania adresów URL baz danych, kluczy API i flag funkcji, aplikacje odczytują je ze zmiennych środowiskowych, a pliki .env zapewniają wygodny sposób ustawiania tych zmiennych podczas rozwoju.

Biblioteka dotenv, pierwotnie dla Ruby, a później przeniesiona do Node.js, Pythona, PHP i praktycznie każdego ekosystemu, odczytuje pliki .env i wstrzykuje wartości do środowiska procesu. Format obsługuje wartości bez cudzysłowów (DATABASE_HOST=localhost), wartości w podwójnych cudzysłowach z sekwencjami escape (MESSAGE="Hello\\nWorld") i wartości w pojedynczych cudzysłowach traktowane dosłownie (REGEX='^\\d+$'). Komentarze zaczynają się od # i puste linie są ignorowane.

Kluczową praktyką jest nigdy nie commitować plików .env do kontroli wersji, ponieważ zazwyczaj zawierają sekrety. Zamiast tego projekty dołączają .env.example z listą wszystkich wymaganych zmiennych i zastępczymi wartościami. Systemy CI/CD i platformy hostingowe zapewniają własne mechanizmy bezpiecznego ustawiania zmiennych środowiskowych.

Rozwijanie zmiennych (odwoływanie się do innych zmiennych za pomocą składni \${VAR}) jest obsługiwane przez niektóre implementacje dotenv. Docker Compose obsługuje to natywnie. Polegając na rozwijaniu, upewnij się, że Twoja konkretna implementacja dotenv to wspiera, ponieważ zachowanie różni się między językami.

Plik .env zazwyczaj zawiera sekrety, takie jak hasła do baz danych, klucze API i klucze szyfrowania. Commitowanie ich do git ujawnia je każdemu z dostępem do repozytorium, a pozostają one w historii git nawet po usunięciu. Dodaj .env do .gitignore i użyj .env.example z zastępczymi wartościami do dokumentowania wymaganych zmiennych. Wartości w podwójnych cudzysłowach interpretują sekwencje escape (\\n staje się nową linią), podczas gdy wartości w pojedynczych cudzysłowach są traktowane jako surowe literały bez przetwarzania escape. Wartości bez cudzysłowów mają obcinane końcowe białe znaki i kończą się na pierwszym znaku #, który jest traktowany jako komentarz w linii.

Zarządzanie wieloma środowiskami zazwyczaj wymaga oddzielnych plików .env: .env dla wartości domyślnych, .env.local dla nadpisań specyficznych dla maszyny (nie commitowanych) i .env.development lub .env.production dla wartości specyficznych dla środowiska. Frameworki takie jak Next.js, Vite i Create React App ładują je w określonej kolejności priorytetów. Dla Dockera, Compose obsługuje env_file do ładowania zmiennych z pliku i klucz environment do ustawiania ich bezpośrednio. Plik .env Compose w katalogu głównym projektu jest używany do podstawiania zmiennych w samym docker-compose.yml. Zmienne ARG czasu budowania różnią się od zmiennych ENV czasu wykonania i nie powinny zawierać sekretów.

← Powrot do wszystkich narzedzi