webpack中chunk、module、bundle的關(guān)系

先確定一點(diǎn),我們知道js萬(wàn)物皆對(duì)象,那么:webpack中萬(wàn)物皆模塊。因?yàn)樗凑漳K來(lái)分析。

什么是module

只要可以引用的,它們都是module。例如import、require或者css的@import。
例如:

// index.js文件
import _ from 'lodash';

console.log(_.join(['大郎', '該', '吃藥了'], ' '));

這是引入一個(gè)lodash模塊,同時(shí)對(duì)于打包分析的來(lái)說(shuō)呈現(xiàn)的結(jié)果是:


它是一個(gè)module

什么是chunk

bundle 由 chunk 組成。通常 chunk 會(huì)直接對(duì)應(yīng)所輸出的 bundle,但是有一些配置并不會(huì)產(chǎn)生一對(duì)一的關(guān)系。

通過(guò)import或require引入的module,就是chunk。所以有時(shí)候chunk是一個(gè)最終輸出的js文件,有時(shí)只是組成bundle中的一部分

什么是bundle

最終的輸出文件就是bundle(由chunk組成)。
看示例代碼:

// index.js文件
import _ from 'lodash';

console.log(_.join(['大郎', '該', '吃藥了'], ' '));

// another.js文件
import _ from 'lodash';

console.log(_.join(['乖', '快', '吃吧'], ' '));

然后運(yùn)行查看看分析圖:


如上就是兩個(gè)大的bundle

對(duì)應(yīng)的從web加載上看:


這就是兩個(gè)js文件,是兩大bundle(對(duì)于最終加載來(lái)說(shuō)其實(shí)也是js文件)

其中,代碼分離,即splitchunks是離chunks。

關(guān)系圖

他們的區(qū)別關(guān)系有兩種:


或者是:


總結(jié):手寫(xiě)的或是引用的都是module,webpack處理時(shí)按chunk來(lái)分,最終輸出的是叫bundle。會(huì)發(fā)現(xiàn),只是它們只是在不同時(shí)期的場(chǎng)景不同叫法而已。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、webpack 配置 1. 資源入口 Webpack 通過(guò) context 和 entry 這兩個(gè)配置項(xiàng)來(lái)共同...
    了凡和纖風(fēng)閱讀 1,111評(píng)論 0 7
  • Webpack打包 webpack是一款目前主流的模塊化打包工具,提供了對(duì)前端開(kāi)發(fā)過(guò)程中涉及的所有資源的模塊化打包...
    彪悍de文藝青年閱讀 646評(píng)論 0 0
  • 模塊打包器:開(kāi)發(fā)一個(gè)項(xiàng)目,業(yè)務(wù)邏輯會(huì)很多,開(kāi)發(fā)會(huì)按照功能邏輯拆分成一個(gè)個(gè)的模塊,這樣開(kāi)發(fā)的時(shí)候更加有條理,維護(hù)起來(lái)...
    谷子多閱讀 4,455評(píng)論 0 44
  • 1. Tree Shaking 1.1 JS Tree Shaking 1.1.1 本地代碼Tree Shakin...
    nimw閱讀 1,028評(píng)論 0 0
  • 最近給項(xiàng)目進(jìn)行webpack優(yōu)化,嘗試過(guò)幾乎所有方法,一共26條,列舉在此。 優(yōu)化webpack,首先明確優(yōu)化目標(biāo)...
    seaasun閱讀 2,278評(píng)論 0 4

友情鏈接更多精彩內(nèi)容