Sprawdzanie pliku .env linia po linii tak, jak czyta go dotenv, i konwersja do JSON lub YAML
Działa w przeglądarce. Wpisane dane nie są nigdzie wysyłane. Sprawdzono 16 października 2026.Plik .env zawiera jedno KEY=value w każdej linii i jest czytany przez pakiet dotenv oraz podobne narzędzia. Znak # rozpoczyna komentarz nawet wewnątrz wartości bez cudzysłowu, więc PASSWORD=abc#123 zostaje odczytane jako abc. Cudzysłowy zachowują spacje i znaki #, podwójne cudzysłowy zamieniają \n na znak nowej linii, a gdy klucz występuje dwa razy, obowiązuje ostatnia wartość.
Ta strona została przetłumaczona maszynowo z angielskiego oryginału. Tłumaczenie nie zostało jeszcze sprawdzone przez człowieka, dlatego wiążąca jest wersja angielska. Przeczytaj angielski oryginał
Wklej plik .env do lewego panelu lub kliknij Otwórz plik.
Przeczytaj problemy pod nim: każdy podaje swoją linię, a Linia N przenosi tam kursor.
Wybierz format, JSON, YAML, Eksport shell, Plik env Dockera lub .env.example, aby zobaczyć przekonwertowane zmienne.
Kliknij Kopiuj lub Pobierz, aby zapisać przekonwertowany plik.
Plik .env wygląda prosto, ale drobne pomyłki zmieniają to, co otrzymuje program, bez żadnego błędu: # w haśle je ucina, niezamknięty cudzysłów staje się częścią wartości, a druga linia z tym samym kluczem po cichu zastępuje pierwszą. To narzędzie czyta plik dokładnie tak, jak pakiet dotenv, i pokazuje każdą taką linię.
Co jest sprawdzane, z numerem linii dla każdego przypadku:
| Problem | Przykład | Co się dzieje |
|---|---|---|
| To nie jest przypisanie | just some text |
ignorowane |
| # w wartości bez cudzysłowu | PASS=abc#123 |
odczytane jako abc |
| Niezamknięty cudzysłów | NAME="Asha |
wartość zachowuje cudzysłów |
| Zduplikowany klucz | PORT dwa razy |
obowiązuje ostatni |
| Nazwa odrzucana przez powłokę | feature.flags=on |
source .env kończy się błędem |
| Niezdefiniowane odwołanie | ${REDIS_HOST} |
pozostaje bez zmian |
| Spacje bez cudzysłowu | FROM=Example Team |
psuje się w powłoce |
Błędy to linie, które dotenv ignoruje lub odczytuje źle; ostrzeżenia działają w dotenv, ale nie w powłoce, Dockerze ani Compose; uwagi, np. o pustej wartości, mają charakter informacyjny.
Konwersje. Zmienne w postaci, w jakiej czyta je dotenv, można skopiować lub pobrać w 5 formach: jako obiekt JSON; jako YAML, w którym każda wartość pozostaje łańcuchem, aby 0123 i true nie zostały zinterpretowane inaczej; jako linie export dla powłoki z bezpiecznymi apostrofami; jako plik env Dockera, który nie może zawierać wartości wieloliniowych; oraz jako .env.example z każdym kluczem i bez wartości, gotowy do commitu.
Odczyt jest porównywany z samym dotenv na 401 plikach testowych, w tym z kluczami wieloliniowymi, końcami linii CRLF i każdym stylem cudzysłowów. Nic nie jest rozwijane: ${OTHER} pozostaje bez zmian, tak jak w samym dotenv.
Plik pozostaje wyłącznie w pamięci przeglądarki. Nigdy nie jest wysyłany ani przechowywany i znika po zamknięciu strony, więc można bezpiecznie wkleić prawdziwe sekrety.
W pliku .env znak # rozpoczyna komentarz nawet w środku wartości bez cudzysłowu, więc PASSWORD=abc#123 zostaje odczytane jako abc. Po ujęciu wartości w cudzysłów, PASSWORD="abc#123" lub PASSWORD='abc#123', cały tekst zostaje zachowany. Każda linia z tym problemem jest tu oznaczana wraz z numerem linii.
Tak. dotenv usuwa spacje na obu końcach, ale zachowuje te w środku, więc NAME=Example Team działa. Powłoka wykonująca source .env zatrzyma się jednak na spacji, a Docker zachowuje wszystko dosłownie. Ujęcie w cudzysłów wartości ze spacjami, NAME="Example Team", działa tak samo w dotenv, Compose i powłokach.
Należy ująć wartość w podwójny cudzysłów i albo faktycznie złamać linie, albo wpisać \n w miejscu każdego podziału. dotenv odczytuje oba warianty i zamienia \n na znak nowej linii tylko wewnątrz podwójnego cudzysłowu. Apostrofy i backticki również obejmują wiele linii, ale pozostawiają \n bez zmian. Plik env Dockera w ogóle nie może zawierać wartości wieloliniowych.
Obowiązuje ostatnia wartość, bez żadnego ostrzeżenia ze strony dotenv, więc PORT ustawiony na górze może zostać po cichu zastąpiony innym PORT niżej. To narzędzie wypisuje każdy duplikat z linią pierwszej definicji, aby można było usunąć ten, który nie powinien się tam znaleźć.
Nie przez sam dotenv: API=${HOST}/api pozostaje dokładnie tak, jak zapisano. Docker Compose i pakiet dotenv-expand zastępują ${HOST} jego wartością, a ${HOST:-fallback} podaje wartość domyślną, gdy HOST nie jest ustawiony. Odwołania do nazw, których plik nigdzie nie definiuje, są tu oznaczane, ponieważ w tych narzędziach stają się puste.
Tak. Plik jest odczytywany przez kod działający we własnej przeglądarce; nic nie jest wysyłane, logowane ani przechowywane, a plik znika po zamknięciu lub przeładowaniu strony. W przeciwieństwie do formatu wyjściowego, który jest zapamiętywany, wklejony tekst nigdy nie jest zapisywany, nawet w pamięci przeglądarki.
Stawki i przepisy się zmieniają; przed oparciem się na danej liczbie należy sprawdzić źródło.
Nadal coś nie działa? Zapytaj o narzędzie Walidator pliku .env a odpowiedzieć może każdy, kto zna odpowiedź. Konto nie jest potrzebne.