對齊環境設定,預設不顯示變數值
.env 檔案比對與檢查工具 — 找出缺少、重複與空白變數
在瀏覽器本機比對 .env 檔案,檢查缺少、多出、空白、重複或已變更的環境變數;預設隱藏值,並可產生需要人工複核的 .env.example。
環境變數鍵名對照表
| 變數名稱 | 開發環境 | 測試環境 | 正式環境 | 處理方式 |
|---|---|---|---|---|
| API_URL | 已設定 | 已設定 | 已設定 | 值不相同 |
| LOG_LEVEL | 已設定 | 缺少 | 已設定 | 補進測試環境 |
| DEBUG | 已設定 | 已設定 | 多出 | 確認正式環境是否需要 |
| DATABASE_URL | 值為空白 | 已設定 | 已設定 | 補齊開發環境 |
Parser 邊界
不同 dotenv loader 沒有共用一套完全一致的規格。
NAME=value # note行尾註解的判讀規則可能不同
export NAME=value本工具接受,其他 loader 未必一致
MULTILINE="one\ntwo"雙引號內的跳脫與換行語意依方言而異
NAME=value
NAME=again重複鍵的覆寫順序必須看實際 loader
最後生效的值取決於載入順序
- 1執行中程序的環境變數
- 2模式專用檔案
- 3本機覆寫檔案
- 4基礎 .env 檔案
- 5應用程式預設值
這是一份需要逐層確認的清單,不是所有框架都遵守的固定優先序。先選 Node dotenv 或 Docker Compose 方言檢查本頁支援的語法,再以實際 runtime、framework 與部署平台文件確認載入順序。
可分享的報告應顯示狀態,不顯示秘密值
DATABASE_URL=postgres://name:password@host/dbDATABASE_URL · 已設定 · 值已變更 · 內容已隱藏「包含變數值」預設關閉,但隱藏輸出不等於 secret detection。本工具不驗證憑證,也不以鍵名或內容完整掃描秘密;看似敏感的名稱只能作為人工複核線索。
產生 .env.example 後,仍要逐項人工檢查
1 · 解析
檢查鍵名、引號與重複定義;產生範例時不保留註解。
2 · 清空值
除 NODE_ENV、LOG_LEVEL、PORT 外,其餘值會輸出為空白。
3 · 補充說明
自行寫明必填格式、用途與經確認安全的預設值。
4 · 人工複核
移除私有主機名稱、帳號識別資料與維運線索。
部署前檢查清單
- 參考檔列出的必要鍵都存在
- 必要變數的值不是空白
- 重複定義已經處理
- 只在特定環境出現的變數符合預期
- 已記錄實際 runtime 的載入優先序
.env 檔案常見問題
- 兩份 .env 的鍵名相同,就代表環境設定等效嗎?
- 不代表。這只能確認鍵名是否對齊;變數值、基礎設施權限、載入順序、型別轉換與應用程式預設值仍可能不同。
- .env.example 可以保留真實值嗎?
- 只應保留經人工確認安全的預設值與占位內容。本工具產生範例時只保留 NODE_ENV、LOG_LEVEL、PORT 的原值,但不代表這三項在每個專案都一定適合公開;其他值會清空,註解不會保留。
- 為什麼要處理重複的環境變數?
- 本工具會把重複鍵列為問題,而比對與合併結果採用最後一次定義;實際 loader 可能採第一次或最後一次,因此重複內容會讓你誤判真正生效的值。