Die JSON-Ausgabe
Die Konvertierung der Beispiel-.env-Datei ergibt:
{
"APP_NAME": "myapp",
"APP_PORT": 3000,
"APP_DEBUG": true,
"DATABASE_HOST": "localhost",
"DATABASE_PORT": 5432,
"DATABASE_NAME": "myapp",
"DATABASE_USER": "admin",
"DATABASE_PASSWORD": "secret",
"DARK_MODE": true,
"MAX_CONNECTIONS": 100,
"ALLOWED_ORIGINS": "https://example.com https://api.example.com",
"API_KEY": "sk-abc123xyz789",
"JWT_SECRET": "my-super-secret-key"
}
Beachte wie APP_PORT, DATABASE_PORT und MAX_CONNECTIONS zu Zahlen und APP_DEBUG und DARK_MODE zu Booleans konvertiert werden. Kommentare werden automatisch entfernt.
Wie .env-Dateien funktionieren
.env-Dateien verwenden einfache KEY=VALUE-Syntax mit diesen Konventionen:
| Feature | Syntax | Beispiel |
|---|---|---|
| Einfacher Wert | KEY=value | APP_NAME=myapp |
| Angeführter Wert | KEY="Wert mit Leerzeichen" | GREETING="hallo welt" |
| Leerer Wert | KEY= | LEERE_VAR= |
| Kommentar | # Text | # Das ist ein Kommentar |
| Export-Präfix | export KEY=value | export API_KEY=abc |
Der Parser verarbeitet all diese Variationen und normalisiert sie zu sauberen Schlüssel-Wert-Paaren.
Häufige .env-Muster
Docker Compose
# docker-compose.env
POSTGRES_USER=admin
POSTGRES_PASSWORD=secret
POSTGRES_DB=myapp
REDIS_URL=redis://cache:6379
Vercel / Netlify
# .env.local
DATABASE_URL=postgresql://user:pass@host/db
NEXT_PUBLIC_API_URL=https://api.example.com
API_SECRET=sk-secret-key
Node.js-Anwendung
# .env
NODE_ENV=production
PORT=3000
LOG_LEVEL=info
CORS_ORIGIN=https://example.com
Warum in JSON konvertieren?
Plattformübergreifende Migration
Von einer .env-basierten Plattform (Docker, Vercel) zu einem JSON-basierten System (Kubernetes ConfigMaps, AWS Parameter Store) wechseln? Konvertiere zuerst um die Struktur zu überprüfen.
Konfigurationsvalidierung
JSON ist programmatisch einfacher zu validieren. Konvertiere deine .env in JSON und führe sie dann durch einen JSON-Schema-Validator um fehlende oder falsche Werte zu erfassen.
Teamzusammenarbeit
JSON ist für Teammitglieder die mit der Umgebungskonfiguration eines Projekts nicht vertraut sind selbstdokumentierender. Die Typinformation (Zahlen vs. Zeichenfolgen) ist explizit.
.env-Fallstricke
Das Noruega-Problem (Gleich wie YAML)
Unangegebene Werte wie NO, TRUE, FALSE können von einigen Parsers als Booleans interpretiert werden. Setze Anführungszeichen um Werte die Zeichenfolgen bleiben sollen:
# Falsch - könnte als Boolean interpretiert werden
COUNTRY=NO
# Richtig - explizit eine Zeichenfolge
COUNTRY="NO"
Mehrzeilige Werte
Mehrzeilige Werte müssen in Anführungszeichen gesetzt werden:
RSA_KEY="-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA0Z3VS5JJcds3xfn/ygWyF...
-----END RSA PRIVATE KEY-----"
Variablenreferenzen
Einige .env-Parser unterstützen die ${VAR}-Syntax für Variablenreferenzen. Dieses Werkzeug löst Referenzen innerhalb derselben Datei wenn möglich auf.