[筆記] Vite 開發與生產環境,注入內容到瀏覽器 window 物件中

使用 Vite 開發時, dev 與 prod 環境中若要自動注入 window 物件,其邏輯是有所不同的。這邊筆記下不同之處,以及如何修正。
notes-vite-github-action


內容

開發 Dev 環境

1. 可以透過 vite.config.define 來定義
2. 開發時,會透過 esbuild 將其主動注入 window 物件中。因此你可以透過 window.[物件 key] 來取得

正式 Prod 環境

1. 打包時,並不會主動注入 vite.config.define 的內容。因此你會需要自行將這些值,在打包時注入每一個 JS 檔案。如此一來,你就可以在 window 內取得
2. 你可以撰寫一個 Plugin 如下:

https://github.com/andy922200/vite-inject-to-window/blob/master/src/injectToWindow/index.ts

3. 打包後的每一個 JS 檔案都是需要的,不然 window 的寫入值會有問題,不過 html 就可視情況而定了。這回在專案中,index.html 作為 dev 環境下的登錄頁面。於最後的打包環節,再將 index.html 給移除即可


參考資料

1. Vite – Shared Options

按讚加入粉絲團

延伸閱讀