webpack壓縮圖片之項目資源優化


webpack打包時,會根據webpack.config.js 中url-loader中設置的limit大小來對圖片進行處理,小於limit的圖片轉化成base64格式,其余的不做操作。對於比較大的圖片我們可以用image-webpack-loader 來壓縮圖片。 

npm install image-webpack-loader --save-dev

在 webpack.config.js 中配置:

{
  test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
  use:[
    {
    loader: 'url-loader',
    options: {
      limit: 10000,
      name: utils.assetsPath('img/[name].[hash:7].[ext]')
      }
    },
    {
      loader: 'image-webpack-loader',// 壓縮圖片
      options: {
        bypassOnDebug: true,
      }
    }
  ]
}

最初打包壓縮后整個包有11.4M,查了下發現是引入的蘋果字體庫就有11多M,刪除了該大包袱后,整個包資源銳減到3.24M,后再次進行圖片的壓縮,就用上面的方法,體積縮減到2.16M,將項目中png圖片在線轉換為jpg后,體積再次縮減到1.82M。

因為代碼要放到騰訊雲上面,涉及到帶寬流量問題,我們進行了整個包資源的優化,最后用戶下載的話就只需下載1.82M的流量包即可。

 經過業務邏輯疊加,我們打包后代碼到了2M了,我們老大需要check我的包代碼,發現里面有map文件沒有去掉,然后我又進行了map文件的清理:

運行 cnpm run build 開始打包后會在項目目錄下自動創建dist目錄,打包好的文件都在其中 
解決辦法:去src/config/index.js中改一個參數: 
productionSourceMap:false 
把這個改為false。不然在最終打包的文件中會出現一些map文件

map文件的作用:項目打包后,代碼都是經過壓縮加密的,如果運行時報錯,輸出的錯誤信息無法准確得知是哪里的代碼報錯。 
有了map就可以像未加密的代碼一樣,准確的輸出是哪一行哪一列有錯。

然后2M多的項目去掉map文件打包后僅剩775K,不足1M的量,突然發現以前我寫的項目包應該都是蠻大的吧[捂臉],對不起使用我寫的項目的用戶鴨,真是抱歉啊,沒有真實為着用戶着想,我的鍋!

 

 

【完】

進一寸有一寸的欣喜


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM