webpack4系列教程,如何压缩图片文件?
发布于 作者:苏南大叔 来源:程序如此灵动~

苏南大叔在这里案例一下,图片压缩的事情。当然,网页图片压缩这件事情,也不是非要弄到webpack
里面进行操作。自己使用自己喜欢的工具,进行操作都是可以的。比如:苏南大叔觉得很不错的pngquant
小工具,就是很好用的,链接见文末。

本文的涉及到的loader
是image-webpack-loader
,因为涉及到各种loader
冲突问题,本方案也不是特别完美。大家看着操作吧。测试环境:win10
,nodejs@12.19.0
,webpack@4.41.12
,image-webpack-loader@7.0.1
,url-loader@4.1.0
。
背景叙述
这里先说一下使用webpack
处理图片时,苏南大叔的已有结论。
结论是:css
中的图片使用url-loader
处理,然后html
中的图片,结合HtmlWebpackPlugin
使用require
语句处理(同样需要url-loader
之类的去处理图片地址)。例子如下:
image-webpack-loader
本文的主要任务是:对图片进行压缩处理,主角是image-webpack-loader
,官方地址如下:
image-webpack-loader
集成了如下几个图片处理工具:gifsicle
,mozjpeg
,optipng
,pngquant
,svgo
,webp
。当然,在安装的时候,部分操作系统下,可能需要单独安装对应的小工具。具体可以查看官方文档。
安装命令是:
这里有个小小插曲,就是不使用npm
,而使用cnpm
。一直安装image-webpack-loader
失败的,请试试cnpm
。

配置项目
image-webpack-loader
和url-loader
联动的基本配置项内容,如下所示:
url-loader
对于大于limit
设定的图片,采用file-loader
进行处理,而小于等于limit
设定的图片,采用base64
处理。- 本文实验中配合
image-webpack-loader
的是url-loader
,而不是推荐的file-loader
。目前来看,没有任何的冲突问题。 - 配置文件中,对于图片文件的处理,使用了两个
loader
,请注意其配置的先后顺序。image-webpack-loader
中的参数,是从官方文档里面抄过来的,大家可以根据自己的需要修改。具体请参考官方文档。

结果展示
在苏南大叔的实验中,一个16kb
的图片,压缩后是6kb
。效果还是不错的。同时,url-loader
的limit
参数也是生效的。这里,不做赘述。

相关链接
- https://newsn.net/say/webpack-url-loader.html
- https://newsn.net/say/pngquant-compress.html
- https://newsn.net/say/cnpm-registry.html
总结
实践一下,然后把感受写下来,这就是经验总结。也可以时刻提醒自己:“我是谁,我做了什么”。不知道, 广大读者,是否同意我的观点呢?
更多webpack
系列教程,请点击苏南大叔的系列文章:


