天天看點

Vue_項目優化使用Gzip暴力壓縮

1. 清除浏覽器緩存

2. 打開首頁

3. app.js 跟 chunk-vendors.js 超過1M,請求狀态200,超過20秒

Vue_項目優化使用Gzip暴力壓縮
 4. 如果請求狀态傳回304 Not Modifyed,表示加載浏覽器緩存的資料
Vue_項目優化使用Gzip暴力壓縮

 5. 優化這個20秒:

步驟一:更改路由

   推薦:使用懶加載的方式: 'Element': (resolve) => require(['@/views/sys/element'],resolve)

           不使用懶加載的方式:'Analysis': () => import('@/views/dashboard/Analysis')

步驟二:使用gzip壓縮

參考文檔:https://www.css88.com/doc/webpack2/plugins/compression-webpack-plugin/

安裝指令: yarn add [email protected]

注意:如果你這裡直接不加@5.0.1版本進行安裝,有可能編譯的時候會出現異常:Cannot read property 'tapPromise' of undefined 原因是webpack的包版本不相容

更改vue.config.js檔案:

const CompressionPlugin = require('compression-webpack-plugin')
const vueConfig = {
    configureWebpack: { // webpack plugins
        plugins: [
            //提供帶 Content-Encoding 編碼的壓縮版的資源
            new CompressionPlugin({
                algorithm: 'gzip',
                test: /\.js$|\.html$|\.css/,// 比對檔案名
                // test: /\.(js|css)$/,         
                threshold: 10240,            // 對超過10k的資料壓縮
                deleteOriginalAssets: false, // 不删除源檔案
                minRatio: 0.8                // 壓縮比
            }),
        ]
      

步驟三:map檔案的作用在于:項目打包後,代碼都是經過壓縮加密的,不能debugger

productionSourceMap: false      

打包結果:

Vue_項目優化使用Gzip暴力壓縮

本地運作結果:

Vue_項目優化使用Gzip暴力壓縮
Vue_項目優化使用Gzip暴力壓縮

最後Nginx配置中http{ 下面開啟gzip壓縮:

         #開啟gzip

         gzip on;

        #gzip 設定需要壓縮的MIME類型,如果不在設定類型範圍内的請求不進行壓縮        

        gzip_types text/plain application/x-javascript application/javascript text/css application/xml text/javascript  image/jpeg image/gif image/png;

 記住執行重新整理nginx配置:

彪悍的人生不需要解釋,彪悍的代碼不需要注釋。

繼續閱讀