安装插件

cnpm install imagemin-gifsicle --save-dev
cnpm install imagemin-mozjpeg --save-dev
cnpm install imagemin-optipng --save-dev
cnpm install imagemin-pngquant --save-dev
cnpm install pngquant-bin --save-dev
cnpm install image-webpack-loader --save-dev

webpack配置

如果是 webpack.base.config.js

 {// test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,// loader: 'url-loader',// options: {//   limit: 10000,//   name: utils.assetsPath('img/[name].[hash:7].[ext]')// },test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,use: [{loader: 'url-loader',options: {limit: 10000,// 小于10K的图片转成base64编码的dataURL字符串写到代码中fallback: 'file-loader',name: utils.assetsPath('img/[name].[hash:7].[ext]')// 其他的图片转移到静态资源文件夹}},{loader: 'image-webpack-loader',// 压缩图片options: {mozjpeg: {//jpeg压缩progressive: true,quality: 65},// optipng.enabled: false will disable optipngoptipng: {//png压缩enabled: false,},pngquant: {//png压缩quality: [0.65, 0.90],speed: 4},gifsicle: {//gif压缩interlaced: false,}// the webp option will enable WEBP//webp: {// quality: 75//}}}]},

如果是 vue.config.js

   chainWebpack: (config) => {config.module.rule('images').exclude.add(resolve('src/assets/icons')) // 排除icons目录,这些图标已用 svg-sprite-loader 处理,打包成 svg-sprite 了.end().use('url-loader').tap(options => ({limit: 10240, // 稍微改大了点fallback: {loader: require.resolve('file-loader'),options: {// 在这里修改file-loader的配置// 直接把outputPath的目录加上,虽然语义没分开清晰但比较简洁name: 'static/img/[name].[hash:8].[ext]',esModule: false, //低版本默认为false,高版本默认为true 这里为6.2.0为高本版本所以要手动设置为false }}})).end().use('image-webpack-loader').loader('image-webpack-loader').options({mozjpeg: { progressive: true, quality: 50 }, // 压缩JPEG图像optipng: { enabled: true }, // 压缩PNG图像pngquant: { quality: [0.5, 0.65], speed: 4 }, // 压缩PNG图像gifsicle: { interlaced: false } // 压缩GIF图像}).end().enforce('post') // 表示先执行配置在下面那个loader,即image-webpack-loader
}

webpack 图片压缩相关推荐

  1. 【前端性能优化实践】手把手教你实现webpack图片压缩插件

    前言 我想写一个系列:前端性能优化实践方案.网上虽然一搜一大把这样的文章,但大多缺乏体系化.也有很多讲性能优化的书籍,但其实想照着书上的知识进行实践,还是挺难的一件事. 这是该系列的第一篇文章 由于自 ...

  2. webpack 图片压缩不起作用_理论|webpack2 终极优化

    webpack是当下最流行的js打包工具,这得益于网页应用日益复杂和js模块化的流行.webpack2增加了一些新特性也到了预发布阶段,是时候告诉大家如何用webpack2优化你的构建让它构建出更小的 ...

  3. JS—图片压缩上传(单张)

    *vue+webpack环境,这里的that指到vue实例 <input type="file" name="file" accept="ima ...

  4. TinyPng图片压缩的正确打开方式

    https://tinypng.com/ TinyPNG使用智能的「有损压缩技术」来减少WEBP.JPEG和PNG文件的文件大小.通过选择性地减少图像中的「颜色数量」,使用更少的字节来存储数据.这种效 ...

  5. vue3 项目修改打包后的引用路径,调整图片压缩成base64的门槛

    vue3 项目修改打包后的引用路径,调整图片压缩成base64的门槛 前言 解决 完事 前言 最近的项目中需要在程序中显示一个H5页面,所以按照官方VUE CLI的教程创建了一个项目开始整.整到最后打 ...

  6. Android性能优化之图片压缩优化

    1 分类 Android图片压缩结合多种压缩方式,常用的有尺寸压缩.质量压缩.采样率压缩以及通过JNI调用libjpeg库来进行压缩. 参考此方法:Android-BitherCompress 备注: ...

  7. 使用libjpeg进行图片压缩(哈夫曼算法,无损压缩)

    Huffman算法也是一种无损压缩算法,但与LZW压缩算法不同,Huffman需要得到每种字符出现概率的先验知识.通过计算字符序列中每种字符出现的频率,为每种字符进行唯一的编码设计,使得频率高的字符占 ...

  8. Android图片压缩(质量压缩和尺寸压缩)

    在网上调查了图片压缩的方法并实装后,大致上可以认为有两类压缩:质量压缩(不改变图片的尺寸)和尺寸压缩(相当于是像素上的压缩):质量压缩一般可用于上传大图前的处理,这样就可以节省一定的流量,毕竟现在的手 ...

  9. android apk瘦身之 图片压缩 tinypng

    Android 的图片压缩其实压缩比很小.tinypng 大概可以压缩20%左右,我们工程的所有图片,之前是860k,压缩之后620k,少了200k. 使用: 1.安装python 2.使用pip进行 ...

  10. (0031) iOS 开发之图片压缩

    1. Aspect单词的, 都会按照图片的宽高比来拉伸.这样会显示不全照片 2. Scale单词的,都会对图片进行拉伸(缩放); 3. 没有出现Scale单词的,都不会对图片进行拉伸; UIViewC ...

最新文章

  1. 清空SqlServer日志文件
  2. 三、Git多人开发:不同人修改了同文件的不同区域如何处理
  3. Silverlight3 Tools Download link
  4. java控制面板作用_大师为你分析win7系统打开java控制面板的方法
  5. 听说本周五要进行一个小测试,公司对员工的考核
  6. 盘点 12 款让开发效率“飞起”的 VS Code 插件
  7. 树、森林、以及二叉树之间的转化
  8. linux内核虚拟内存之物理内存
  9. Java面试题中高级,java简历技术栈怎么写
  10. 计算机如何设置桌面文件筐,360安全桌面怎么设置文件筐 自定义分框其实非常简单...
  11. 信息化建设中的IT规划精要
  12. 各类顶尖经典电影500部,先收着,待有空的时候慢慢看吧!
  13. HAL学习笔记-3 HAL库介绍
  14. win10 cortana 没反应解决方法
  15. 光学变焦----景深=景深远界-景深近界
  16. 云宏脚踏实地做自主中国云,厚积薄发终见锋芒
  17. 招聘 | 腾讯TEG机器学习平台预训练组实习生JD
  18. 全局钩子+正则表达式=后台自动获取扫描枪数据
  19. 注意避坑,Vue Router 4: 路由参数在 created/setup 时不可用
  20. 计算机错误651是什么故障,错误651是什么意思

热门文章

  1. 前端基础:通过 《砸金蛋》小游戏实践CSS的id选择器和class选择器
  2. c#winform panel空间拖动窗体 最小化 关闭 按钮 右下角弹窗
  3. c语言dsp编程论坛,针对Ti的DSP C语言编程
  4. 国内B2C 26个经典购物网站商城收集
  5. 详细解说iexplore.exe
  6. latex如何设置字体并加粗_latex怎么把字加粗
  7. PHP做一个直角三角形,三角形角度(直角三角形懒人计算器)
  8. 第七章 文本数据-学习笔记+练习题
  9. html获取表格行数据,怎么获取表格一行数据
  10. Lombok requires enabled annotation processing