webpack打包快取 webpack打包優化探索

2021-10-17 04:53:02 字數 1598 閱讀 9573

雖然webpack的已經公升級到了webpack4,而我們目前還在使用 webpack3,但其中的優化點都大同小異,公升級後同樣適用。

效能優化初步原則

這三條原則永遠是一切優化的前提

優化配置

公升級webpack 3,優化js的編譯能力(scope hoisting)

1performance:

減小**量

提取 chunk 中使用的公共庫(能為chunk**節約近1/3的**量)

1  8  }生產模式(pro)下第三方庫使用已壓縮版本,能節約近20k檔案大小

1// 開發模式 2resolve: 6} 7// 生產模式 8resolve: 12}優化 babel-ployfill,結合  babel-preset-env 實現相容按需載入,比使用es2015能節約近半的大小

減少請求數

最大化利用瀏覽器快取

這樣能最大化利用瀏覽器快取

1// 不固定版本,會造成打包後 hash 值變化,瀏覽器沒辦法利用本身的快取載入js,每次上線都會使本地快取失效,頁面載入變慢 2"dependencies":

其他優化

zindex被重置問題

由於cssnano預設配置,是自動會把 z-index重置為1,例如:

1classname 45after67classname

這時候需要優化cssnano的配置,.postcssrc 如下:

1/* eslint-disable no-unused-vars */ 2module.exports = 10      ]11    }12  }13}

使用按需載入js後,打包**特別大

需要注意的是,當使用按需載入的功能,然後沒有提取所有chunk包裡的 css,同時又開啟了sourcemap功能,那麼就會造成這種情況 最簡單的辦法就是,對css不使用 sourcemap功能,例如:

1rules: [2  7  }8]

廣告以下是筆者基於 vue-cli 的模版優化後的vue和 react的打包工具,用法一致。

以下包整合了以上所有優化,支援單頁面及多頁面應用,完全相容vue-cli生成的模版專案

zz-webpack-vue

zz-webpack-react

以下是使用本組乙個vue-cli生成的專案做的乙個優化對比:

優化前:

打包

分析優化後:

打包

分析可以檢視具體的優化配置,或者直接在專案中嘗試使用,有任何問題歡迎隨時反饋,目前正在籌畫統一公升級webpack4

webpack打包快取 webpack打包效能分析

webpack提供的uglifyjs外掛程式由於採用單執行緒壓縮,速度很慢 webpack parallel uglify plugin外掛程式可以並行執行uglifyjs外掛程式,這可以有效減少構建時間,當然,該外掛程式應用於生產環境而非開發環境,配置如下 var paralleluglifypl...

webpack打包檔案

webpack.config.js是自己建立的打包檔案 在檔案的跟目錄下 引用html webpack plugin 首先要 npm install html webpack plugin s 在命令列中執行一下 let path require path 引入這個檔案就不會把相對路徑變成絕對路徑 ...

webpack打包優化

tree shaking 使用import匯入的包,在生產環境下自動去除包內沒有引用的 這是webpack打包自帶的優化 import是es6引入規範 所以記得要裝babel require是common.js引入規範 scope hosting 在bundle.js檔案 module a.js e...