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的流量包即可。