.env-Portabilität prüfen
Füge eine .env-Datei ein, um Werte zu finden, die Node `dotenv`, Docker/Docker Compose und POSIX-Shells unterschiedlich interpretieren oder ablehnen können. Inhalte werden lokal im Browser verarbeitet; echte .env-Dateien enthalten oft Geheimnisse.
Die Verarbeitung erfolgt lokal in Ihrem Browser. Ihre Datei wird niemals hochgeladen.
Anleitung Tool
- Füge .env-Inhalt oder einen repräsentativen Ausschnitt ein; er wird nicht hochgeladen.
- Starte die Analyse.
- Prüfe markierte Zeilen und Unterschiede zwischen dotenv, Compose und POSIX-Shell.
- Übernimm eindeutige Umschreibungen. Nicht geschlossene Anführungszeichen, doppelte Schlüssel und Interpolation werden nicht erraten.
Annahmen
- Erwartet eine Zuweisung KEY=value je Zeile, Kommentare mit `#` und Leerzeilen.
- Als zitiert gilt nur ein Wert mit zusammenpassenden öffnenden und schließenden einfachen oder doppelten Anführungszeichen.
- Doppelte Schlüssel, Interpolation und ungültige Namen werden markiert, nicht eigenmächtig aufgelöst.
Quellen und Referenzdaten
Methodik
Prüft zeilenweise dokumentierte Unterschiede: unzitierte Leerzeichen und `#`, `export`, nicht geschlossene Anführungszeichen, `$VAR`/`${VAR}`-Interpolation, doppelte Schlüssel, nachgestellte Leerzeichen und ungültige Shell-Bezeichner. Nur Zitate setzen, nachgestellte Leerzeichen entfernen und `export` entfernen werden als eindeutige Korrekturen angeboten.
Rechenbeispiel
Variablenverweis
Eingaben: API_URL=${BASE_URL}/api
Ergebnis: `dotenv` expandiert `${BASE_URL}` standardmäßig nicht; Compose und POSIX-Shell können interpolieren. Ob Expansion beabsichtigt ist, wird nicht geraten.
export-Präfix
Eingaben: export APP_NAME=My Example App
Ergebnis: Gültige POSIX-Shell, aber dotenv und Compose behandeln `export` unterschiedlich. Zusätzlich ist der unzitierte Wert mit Leerzeichen problematisch.
Doppelter Schlüssel
Eingaben: TIMEOUT=30 TIMEOUT=60
Ergebnis: Viele Parser behalten stillschweigend nur den letzten Wert. Die zweite Zeile überschreibt TIMEOUT=30.
Praktische Hinweise
- Zitiere Werte mit Leerzeichen oder `#`, auch wenn dotenv sie unzitiert akzeptiert.
- Vermeide `$VAR`-Referenzen, sofern nicht alle Verbraucher identisch interpolieren.
- Verwende KEY=value ohne `export`, wenn dotenv-Kompatibilität erforderlich ist.
Häufige Fehler
- Annehmen, ein gestartetes Programm beweise, dass alle Verbraucher Werte gleich gelesen haben.
- Schlüssel als freie Bezeichnungen behandeln: Shells benötigen gültige Bezeichner.
Häufige Fragen
Ist es sicher, hier echte Geheimnisse einzufügen?
Der Inhalt wird im Browser analysiert und nicht übermittelt. Die Website erfasst allgemeine Seitenanalyse, aber nicht den eingefügten Inhalt. Verwende dennoch einen gleich geformten Platzhalter, wenn du unsicher bist.
Warum wird Interpolation in Compose, aber nicht standardmäßig in Node dotenv ausgeführt?
Docker Compose interpoliert Variablen in seiner Konfiguration; das Paket `dotenv` expandiert Referenzen standardmäßig nicht. Häufig ist dafür ein Zusatzpaket wie `dotenv-expand` nötig. Das Werkzeug führt keinen der Parser aus.
Warum werden doppelte Schlüssel nicht automatisch korrigiert?
Es müsste geraten werden, welcher Wert beabsichtigt ist. Das Werkzeug markiert den Konflikt, statt Inhalte stillschweigend zu ändern.
Zuletzt geprüft:
Formprüfer statt vollständigem Shell- oder Compose-Parser. Er erkennt die konventionelle KEY=value-Form und die aufgeführten Abweichungen, nicht jeden Sonderfall realer Parser.
Design- und Tool-Einstellungen sowie gespeicherte und zuletzt verwendete Listen werden nur in diesem Browser gespeichert.