為什麼要做檢查器,而不是又一個轉換器
搜尋「.env to json」,第一頁是一整排轉換器。它們做的都是同一件機械的事,卻沒有一個回答你在部署當下真正想問的問題:這個檔案完整嗎?裡面有沒有危險的東西?
所以這個工具是反過來做的——轉換是副產品,檢查才是產品。它比對兩個檔案、套用 Vite(多數 Vue 3 專案的執行環境)特有的規則,並回傳一份有型別的 env.d.ts,讓下一個人不必再手寫。
- 與 .env.example 比對。 缺少的變數(應用會讀到 undefined)、只存在於你本機的變數、宣告了卻留空的鍵,以及與示例不同的值——全部按鍵名列出,而不是寫成一段話。
- Vite 特有的陷阱。 只有帶 VITE_ 前綴的變數會進到 import.meta.env。這也意味著:帶 VITE_ 前綴的密鑰會被內聯進客戶端 bundle,任何人都讀得到;而瀏覽器需要的變數若少了前綴,會悄悄變成 undefined。兩種都會被標出。
- 重複鍵與語法問題。 dotenv 只保留最後一次定義,所以重複鍵是無聲的意外。解析器會報出每個重複鍵的行號,以及沒有「=」的行與不是合法識別字的鍵名。
- 沒人想寫的那一半。 產生 env.d.ts(可選擇把示例裡沒有的變數標為可選),以及鍵已排序、值已清空的 .env.example,讓 diff 保持可讀。
所有事情都在你的分頁裡完成:檔案在本機解析、不上傳、也不產生分享連結。這一點在這裡比平常更重要,因為 .env 正是那種永遠不該離開你機器的檔案。請把產出當成檢查輔助:驗證器懂語法與 Vite 規則,但它不懂你的部署環境。