【前端資訊】Webpack 4 將移除 CommonsChunkPlugin

本文轉自 FEPulse 公眾號(微信搜索 FEPulse,每日精選一條國內外最新前端資訊,為你把握前端脈搏)。

近日,webpack 團隊發推表示,webpack 4 將移除 CommonsChunkPlugin, 取而代之的是兩個新的配置項 optimization.splitChunks 和 optimization.runtimeChunk。

CommonsChunkPlugin

在理解 CommonsChunkPlugin 之前,我們需要熟悉 webpack 中 chunk 的概念,webpack 將多個模塊打包之後的代碼集合稱為 chunk。為了將一些很少變化的常用庫(react、redux、lodash)與業務代碼分開,或者是一些不同入口共同使用的公共模塊,開發者常常需要將它們單獨打包,這些都可以通過配置 CommonsChunkPlugin 來實現。下面是一個 CommonsChunkPlugin 的簡單示例:

簡單來說,CommonsChunkPlugin 的作用主要體現在代碼分割和性能優化上,主要有如下幾個方面:

  • 提取常用庫代碼
  • 提取公有代碼
  • 提取 webpack 的 runtime (運行時) 代碼

更新

webpack 4 準備通過 optimization.splitChunks 和 optimization.runtimeChunk 屬性來簡化代碼分割的配置

optimization.splitChunks

通過設置 optimization.splitChunks.chunks: "all" 來啟動默認的代碼分割配置項。

當滿足如下條件時,webpack 會自動打包 chunks:

  • 當前模塊是公共模塊(多處引用)或者模塊來自 node_modules
  • 當前模塊大小大於 30kb
  • 如果此模塊是按需載入,並行請求的最大數量小於等於 5
  • 如果此模塊在初始頁面載入,並行請求的最大數量小於等於 3

當然,開發者也可以通過修改配置來更換自動打包的條件。

optimization.runtimeChunk

通過設置 optimization.runtimeChunk: true 來為每一個入口默認添加一個只包含 runtime 的 chunk。

最後,再次邀請大家關注我們的公眾號 FEPulse,第一時間獲取我們精心整理的最新的前端資訊。

推薦閱讀:

工具武裝的前端開發工程師
「每日一題」談談你對原型、原型鏈、 Function、Object 的理解?
前端工程師是怎樣一種職業
如何用 css 修出好看的照片

TAG:前端工程师 | 前端开发 | GoogleChrome |