webpack 的作用是將源**編譯(構建、打包)成最終**
整個過程大致分為三個步驟
初始化編譯輸出
此階段,webpack會將cli引數、配置檔案、預設配置進行融合,形成乙個最終的配置物件。
對配置的處理過程是依託乙個第三方庫yargs完成的
此階段相對比較簡單,主要是為接下來的編譯階段做必要的準備
目前,可以簡單的理解為,初始化階段主要用於產生乙個最終的配置
1. 建立chunk
chunk是webpack在內部構建過程中的乙個概念,譯為塊,它表示通過某個入口找到的所有依賴的統稱。
根據入口模組(預設為./src/index.js)建立乙個chunk
每個chunk都有至少兩個屬性:
2.構建所有依賴模組
3.產生chunk assets
在第二步完成後,chunk中會產生乙個模組列表,列表中包含了模組id和模組轉換後的**
接下來,webpack會根據配置為chunk生成乙個資源列表,即chunk assets,資源列表可以理解為是生成到最終檔案的檔名和檔案內容
chunk hash是根據所有chunk assets的內容生成的乙個hash字串 hash:一種演算法,具體有很多分類,特點是將乙個任意長度的字串轉換為乙個固定長度的字串,而且可以保證原始內容不變,產生的hash字串就不變
簡圖
4.合併chunk assets
將多個chunk的assets合併到一起,並產生乙個總的hash
此步驟非常簡單,webpack將利用node中的fs模組(檔案處理模組),根據編譯產生的總的assets,生成相應的檔案。
涉及術語
module:模組,分割的**單元,webpack中的模組可以是任何內容的檔案,不僅限於js
chunk:webpack內部構建模組的塊,乙個chunk中包含多個模組,這些模組是從入口模組通過依賴分析得來的
bundle:chunk構建好模組後會生成chunk的資源清單,清單中的每一項就是乙個bundle,可以認為bundle就是最終生成的檔案
hash:最終的資源清單所有內容聯合生成的hash值
chunkhash:chunk生成的資源清單內容聯合生成的hash值
chunkname:chunk的名稱,如果沒有配置則使用main
id:通常指chunk的唯一編號,如果在開發環境下構建,和chunkname相同;如果是生產環境下構建,則使用乙個從0開始的數字進行編號
Webpack搭建過程
webpack就是乙個打包工具 靜態資源打包工具 前端必備 js依賴進行整合處理 打包整合 一些預處理的sass,less可以在環境中進行編譯 換 可以對js html 等進行壓縮 優化 entry 入口檔案 好比main.js output 出口檔案 好比dist 打包之後的資料夾 plugin ...
關於webpack編譯scss檔案
css載入器檔案通常和extract text webpack plugin一塊使用,我們可以在原始檔src目錄下寫scss檔案,然後通過webpack編譯成css檔案到輸出目錄public,這個目錄就是我們 需要引用的目錄.1 var webpack require webpack 2var ht...
關於webpack編譯scss檔案
css載入器檔案通常和extract text webpack plugin一塊使用,我們可以在原始檔src目錄下寫scss檔案,然後通過webpack編譯成css檔案到輸出目錄public,這個目錄就是我們 需要引用的目錄.1 var webpack require webpack 2var ht...