實用工具
輸入
結果
結果會顯示在這裡。.env 檔案看起來簡單到不可能寫錯,直到某個值裡出現 #、引號或換行。這個工具使用逐行移植自 motdotla/dotenv 的解析器來讀取——大多數 Node 專案都是用這個套件載入環境變數——所以你在這裡看到的,就是 process.env 實際會有的內容。可以轉成 JSON 交給密鑰管理服務或測試資料,轉成 docker run 的 -e 參數,或 Compose 檔案的 environment: 區塊;也可以反過來,把 JSON 物件轉成一份讀回時引號不會走樣的 .env 檔案。
它是怎麼運作的
- 未加引號時,即使 # 出現在值的中間也會開始註解,這是 dotenv 的規則,也是 URL 被截斷的常見原因。
- 單引號與反引號中的值按字面讀取;只有雙引號會把 \n 轉成真正的換行。
- export KEY=value 和 KEY: value 兩種寫法都接受,同一個鍵定義兩次時保留最後一次的值——統計資訊會列出哪些鍵重複。
- 既不是註解也不是變數的非空白行,會依列號列出,拼字錯誤不會悄悄消失。
- Docker 參數會經過 shell 引號處理;Compose 輸出則會替 YAML 可能誤讀的值加上引號,因此 true、null 或 5432 會維持為字串,而不會變成布林值、null 或數字。
你的資料去了哪裡
哪也沒去。本工具完全在你的瀏覽器裡執行:你貼上的文字由頁面處理,不會傳輸到任何伺服器,也不會寫進任何紀錄。
本工具免費且免登入,執行結果只存在於你目前的頁面裡,不會被儲存到任何地方。
它要花多少
本工具完全免費,不需要登入,也不消耗點數。
常見問題
- 為什麼我的 URL 在 # 處被截斷了?
- 在未加引號的值中,dotenv 會把出現在任何位置的 # 視為註解開頭,所以 URL=https://example.com/#section 會在斜線處結束。將值加上引號——URL="https://example.com/#section"——# 就會保留下來。
- 像私密金鑰這種多行的值要怎麼儲存?
- 可以用雙引號搭配 \n 跳脫字元寫在同一行,或用雙引號跨越多個真正的行,dotenv 兩種都能讀取。JSON 轉 .env 方向會寫成單行跳脫的形式,這種寫法貼進 CI 的密鑰設定也不會出問題;只有同時含有換行與雙引號的值,才會用反引號跨多行寫出,因為 dotenv 沒有其他方式能把它讀回來。
- 會展開 ${VARIABLE} 這類參照嗎?
- 不會,dotenv 本身也不會。展開是另一個套件 dotenv-expand 的工作,Docker Compose 則套用自己的插值規則。這裡顯示的值與 dotenv 的 parse 回傳結果完全相同,參照會以字面文字保留。
- 把正式環境的密鑰貼到這裡妥當嗎?
- 內容不會離開網頁——轉換過程中不會發出任何請求——但裝滿正式環境憑證的 .env,在任何地方都應該盡量少經手。先把值換成預留字串是個好習慣;結構的轉換方式完全相同。
背後的開源專案
本工具是獨立實作,並未打包第三方函式庫。motdotla/dotenv(BSD-2-Clause)在程式碼層面做的是同一件事——如果你需要在自己的程式裡實作它,從那裡開始,而不是呼叫一個網頁。
motdotla/dotenv也常被稱作
- .env 轉 json
- env 轉 json
- json 轉 env
- dotenv 線上解析
- env 檔轉 docker 環境變數
- env 轉 docker compose