1. 程式人生 > 實用技巧 >webpack的優化配置:Tree shaking , 拆分等

webpack的優化配置:Tree shaking , 拆分等

一,mode:development / production

二,Tree shaking (生產模式預設啟用)

  上下文未用到的程式碼,不會被打包

  要基於ES6:import export。

  sideEffects:不需要被Tree shaking的檔案,有可能誤刪程式碼,如模組中的css,全域性變數等。

  babel配置影響:保留es6的模組化語法,不需要轉成其他模組化語法。module:false

三,提升構建的速度

  noParse:一些庫不需要解析,沒有使用模組化方式的庫或獨立的庫。eg:loadsh

  DllPlugin:避免打包時,對不變的庫進行重複構建。提取成動態連結的方式,進行引用。拆分bundles。

        eg:react,react-dom(比較穩定的庫)

四,按需載入

  1,通過entry入口檔案(多個)。特點:需手工維護入口檔案,入口檔案有可能有重複引用,重複打包。

  2,防止重複:使用 splitChunk 去除重複引用和分離(第三方庫和業務) chunk。

optimization:{ //實現按需載入,將業務程式碼 與 帶三方庫程式碼進行分離
    splitChunks: {
      cacheGroups: {
        vendor:{ //第三方庫
          name: 'vendor',
          test: /[\\/]node_modules[\\/]/,
          minSize: 
0, minChunks: 1, priority: 10 ,// 資源載入優先順序 chunks: 'initial' //同步 }, common: { //公共程式碼 name: 'common', test: /[\\/]src[\\/]/, chunks: 'all', //靜態引入,和動態引入都考慮在內 } } } },

  3,動態載入:通過模組的行內函數呼叫來分離程式碼。import('..').then(_ => {})