打包工具備多種,實際中 webpack 接觸的比較多,目前中文文檔跟英文文檔有些對不上,其中有些概念比較分散,對此進行集中的整理。webpack
任什麼時候候,一個文件依賴於另外一個文件,webpack 把這種狀況視爲依賴關係。這讓 webpack 能夠接受非代碼資源,例如圖片或字體,而且能夠將它們做爲依賴提供給你的應用程序。git
當 webpack 處理你的程序時,多是從命令行或配置文件中定義的一系列模塊開始。從入口文件開始,webpack 遞歸地構建一個依賴圖(Dependency Graph),這個依賴圖包含着應用程序所需的每一個模塊,並生成一個或多個 bundle
,可由瀏覽器加載。github
runtime
和 manifest
數據,基本上是在瀏覽器運行時,webpack 用來鏈接模塊化應用程序所需的全部代碼。manifest
做爲名詞時,中文意思是:(船或飛機的)貨單,旅客名單manifest
」。runtime
會經過 manifest
來解析和加載模塊。import
或 require
語句如今都已經轉換爲 __webpack_require__
方法,此方法指向模塊標識符(module identifier)。bundles
由 chunks
組成,其中有多種類型(例如入口)。chunks
與輸出 bundles
直接對應,可是,有些配置不產生一對一關係。bundle
。指將代碼分紅不一樣的 bundles/chunks
,而後能夠按需加載,而不是加載包含全部內容的單個 bundles
。web
webpack 提供了一種使用稱爲 substitution (可替換模板字符串) 的方式,經過帶括號字符串來模板化文件名。瀏覽器
模版 | 描述 |
---|---|
[hash] | 模塊標識符的 hash。修改一個模塊,其它模塊生成的 hash 都會變。 |
[contenthash] | 文件內容的 hash,每一個都不相同。只有改變了內容的文件的 hash 纔會變。 |
[chunkhash] | chunk 內容的 hash。一個文件改變,其關聯的文件 hash 也會變。 |
[name] | 模塊的名稱 |
[id] | 模塊標識符 |
[query] | 模塊的 query,例如文件名 ? 後面的字符串 |
[function] | 返回文件名稱的方法 |