一、前言

因為網頁應用程式不斷擴大、開發模式慢慢地被模組化設計取代,近期誕生了 Webpack,它可以在 JavaScript 生態系中,作為一個高度整合且完整之建置工具,優化程式的效能。

我在培訓營時,也有接觸到 Webpack,但其中運作原理並不是非常理解,隨著步入職場,因應工作需求,自行進修後將學習到的用簡單圖文方式紀錄於此,與大家分享(應該會有續集!)。

二、Webpack 之運作三階段

階段 1 階段 2 階段 3
來源(Entry) 處理(Mode) 輸出(Output)

1. 來源(Entry)

係所有資源的起始點,運作原理是以 Entry 這個模組的相依關係,解析出整個應用程式的相依關係圖。

2. 處理(Mode)

經過上一階段「來源(Entry)」的運作,會在此時進行所有資源對應之處理。而其最佳化設定會依 Mode 屬性而有所不同。Mode 屬性有 production、development與none三種,主要是目標環境的不同。

3. 輸出(Output)

有來源自然就會有輸出。在第一階段我們告訴 Entry 模組的相依性,經過第二階段處理後,在這個最後階段,設定輸出的位置與方式。

三、結論與自我鼓勵

以上參考資源如果大家有興趣,推薦先看「從0到Webpack」系列文章或支持作者書籍,再看「Webpack5 快速入門」之影片教學實做一次,會更理解運作原理!

總結此篇文章,其實大家可以將 Webpack 視為現代 JavaScript 應用程式的模組綑綁器,所有資源進到 Webpack 中都會變成模組,在建置過程中的各個階段會以特定方式進行處理,最後輸出結果。