webpack优化构建体积示例-压缩图片:

2024-05-16 15:44

本文主要是介绍webpack优化构建体积示例-压缩图片:,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

不同的图片格式有不同的特点和用途,它们也需要不同的压缩算法和技术,也为了保证能在各个浏览器环境下能正常加载显示,所以需要用到多个插件

在使用imagemin-webpack-plugin来配置图片压缩时,你需要确保已经安装了该插件以及它可能依赖的imagemin插件(如imagemin-mozjpeg、imagemin-pngquant等)。

下载imagemin-webpack-plugin插件可能会遇到以下问题
1. 找不到 raw.githubusercontent.com
在hosts配置 199.232.96.133 raw.githubusercontent.com
并刷新hosts重试
2. Error: pngquant failed to build, make sure that libpng-dev is installed
执行npm install --global --production windows-build-tools 
记得同时下载对应版本的python
webpack.config.js
const HtmlWebpackPlugin = require('html-webpack-plugin')
const ImageminPlugin = require('imagemin-webpack-plugin').default;
const imageminMozjpeg = require('imagemin-mozjpeg');  
const imageminPngquant = require('imagemin-pngquant');  
// const imageminSvgo = require('imagemin-svgo');  module.exports = {entry: './src/index.js',output: {filename: 'main.js',},plugins: [new HtmlWebpackPlugin({template: './index.html',}),// 使用imagemin-webpack-plugin对图片进行压缩  new ImageminPlugin({  // 匹配要处理的图片文件  test: /\.(jpe?g|png|gif|svg)(\?.*)?$/i,  // 压缩选项  pngquant: {  quality: [0.65, 0.9], // 压缩级别,范围0-1  speed: 4 // 速度,范围1-11  },  optipng: {  optimizationLevel: 7 // 0-7的优化级别  },  gifsicle: {  interlaced: true, // 是否隔行扫描gif进行模糊效果  optimizationLevel: 3 // 0-3的优化级别  },  jpegtran: {  progressive: true, // 是否无损压缩  },  mozjpeg: {  quality: 65, // 图片质量,范围0-100  progressive: true // 是否启用渐进式编码  },  svgo: {  plugins: [  { removeViewBox: false },  { cleanupIDs: false }  // 可以添加更多SVGO插件配置  ]  },  // 如果你不需要使用额外的imagemin插件,可以省略plugins属性  plugins: [  imageminMozjpeg(),  imageminPngquant({  quality: [0.6, 0.8],  }),  // 自定义插件...  ],  // 其他配置...  // 例如,设置输出目录、文件名哈希等  // output: {  //   path: 'path/to/output',  //   filename: '[name].[hash:8].[ext]'  // },  // 启用gzip压缩,如果你需要的话  // gzip: {  //   level: 9,  //   options: {  //     // gzip options  //   }  // },  // 启用webp格式转换,如果你需要的话  // webp: {  //   quality: 75  // }  }),  ],mode: 'production',module: {rules: [{test: /\.(png|jepg|gif|svg)(\?.*)?$/,type: 'asset/resource'}]}
}

压缩前
在这里插入图片描述
压缩后

这篇关于webpack优化构建体积示例-压缩图片:的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/995338

相关文章

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

在 Spring Boot 中使用 @Autowired和 @Bean注解的示例详解

《在SpringBoot中使用@Autowired和@Bean注解的示例详解》本文通过一个示例演示了如何在SpringBoot中使用@Autowired和@Bean注解进行依赖注入和Bean... 目录在 Spring Boot 中使用 @Autowired 和 @Bean 注解示例背景1. 定义 Stud

oracle DBMS_SQL.PARSE的使用方法和示例

《oracleDBMS_SQL.PARSE的使用方法和示例》DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/S... 目录语法示例注意事项DBMS_SQL 是 oracle 数据库中的一个强大包,它允许动态地构建和执行

Python中顺序结构和循环结构示例代码

《Python中顺序结构和循环结构示例代码》:本文主要介绍Python中的条件语句和循环语句,条件语句用于根据条件执行不同的代码块,循环语句用于重复执行一段代码,文章还详细说明了range函数的使... 目录一、条件语句(1)条件语句的定义(2)条件语句的语法(a)单分支 if(b)双分支 if-else(

Python中Markdown库的使用示例详解

《Python中Markdown库的使用示例详解》Markdown库是一个用于处理Markdown文本的Python工具,这篇文章主要为大家详细介绍了Markdown库的具体使用,感兴趣的... 目录一、背景二、什么是 Markdown 库三、如何安装这个库四、库函数使用方法1. markdown.mark

Deepseek使用指南与提问优化策略方式

《Deepseek使用指南与提问优化策略方式》本文介绍了DeepSeek语义搜索引擎的核心功能、集成方法及优化提问策略,通过自然语言处理和机器学习提供精准搜索结果,适用于智能客服、知识库检索等领域... 目录序言1. DeepSeek 概述2. DeepSeek 的集成与使用2.1 DeepSeek API

Python利用PIL进行图片压缩

《Python利用PIL进行图片压缩》有时在发送一些文件如PPT、Word时,由于文件中的图片太大,导致文件也太大,无法发送,所以本文为大家介绍了Python中图片压缩的方法,需要的可以参考下... 有时在发送一些文件如PPT、Word时,由于文件中的图片太大,导致文件也太大,无法发送,所有可以对文件中的图

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意

java获取图片的大小、宽度、高度方式

《java获取图片的大小、宽度、高度方式》文章介绍了如何将File对象转换为MultipartFile对象的过程,并分享了个人经验,希望能为读者提供参考... 目China编程录Java获取图片的大小、宽度、高度File对象(该对象里面是图片)MultipartFile对象(该对象里面是图片)总结java获取图片