gulp常用插件之gulp-imagemin使用
更多gulp常用插件使用请访问:gulp常用插件汇总
gulp-imagemin这是一款缩小PNG,JPEG,GIF和SVG图像的插件。
安装
一键安装不多解释
npm install --save-dev gulp-imagemin
使用
基本的使用:
const gulp = require('gulp');
const imagemin = require('gulp-imagemin');
exports.default = () => (
gulp.src('src/images/*')
.pipe(imagemin())
.pipe(gulp.dest('dist/images'))
);
自定义插件选项
// …
.pipe(imagemin([
imagemin.gifsicle({interlaced: true}),
imagemin.jpegtran({progressive: true}),
imagemin.optipng({optimizationLevel: 5}),
imagemin.svgo({
plugins: [
{removeViewBox: true},
{cleanupIDs: false}
]
})
]))
// …
请注意,您可能会遇到较旧的隐式语法。在版本低于3的版本中,如下所示:
// …
.pipe(imagemin({
interlaced: true,
progressive: true,
optimizationLevel: 5,
svgoPlugins: [
{
removeViewBox: true
}
]
}))
// …
自定义插件选项和自定义gulp-imagemin选项
// …
.pipe(imagemin([
imagemin.svgo({
plugins: [
{
removeViewBox: true
}
]
})
], {
verbose: true
}))
// …
只压缩修改的图片。压缩图片时比较耗时,在很多情况下我们只修改了某些图片,没有必要压缩所有图片,使用”gulp-cache”只压缩修改的图片,没有修改的图片直接从缓存文件读取
var gulp = require('gulp'),
imagemin = require('gulp-imagemin'),
pngquant = require('imagemin-pngquant'),
//确保本地已安装gulp-cache [cnpm install gulp-cache --save-dev]
cache = require('gulp-cache');
gulp.task('testImagemin', function () {
gulp.src('src/img/*.{png,jpg,gif,ico}')
.pipe(cache(imagemin({
progressive: true,
svgoPlugins: [{removeViewBox: false}],
use: [pngquant()]
})))
.pipe(gulp.dest('dist/img'));
});
API:
随附以下无损优化器:
[gifsicle](https://github.com/imagemin/imagemin-gifsicle)— 压缩GIF图像[jpegtran](https://github.com/imagemin/imagemin-jpegtran)— 压缩JPEG图像[optipng](https://github.com/imagemin/imagemin-optipng)— 压缩PNG图像[svgo](https://github.com/imagemin/imagemin-svgo)— 压缩SVG图像
** imagemin(plugins?, options?) **
plugins(外挂程式)
类型:Array
默认值:[imagemin.gifsicle(), imagemin.jpegtran(), imagemin.optipng(), imagemin.svgo()]
要使用的插件。这将覆盖默认插件。请注意,默认插件具有良好的默认值,并且在大多数情况下应该足够了。请参阅各个插件以获取受支持的选项。options(选项)
类型:object
{
optimizationLevel: 5, //类型:Number 默认:3 取值范围:0-7(优化等级)
progressive: true, //类型:Boolean 默认:false 无损压缩jpg图片
interlaced: true, //类型:Boolean 默认:false 隔行扫描gif进行渲染
multipass: true //类型:Boolean 默认:false 多次优化svg直到完全优化
svgoPlugins: [{removeViewBox: false}],//不要移除svg的viewbox属性
use: [pngquant()] //使用pngquant深度压缩png图片的imagemin插件
}
verbose(冗长的)
类型:boolean
默认值:false
启用此功能将在传递给的每个图像上记录信息gulp-imagemin:
gulp-imagemin: ✔ image1.png (already optimized)
gulp-imagemin: ✔ image2.png (saved 91 B - 0.4%)
silent(无声)
类型:boolean
默认值:false
不要记录已缩小的图像数。
--silent如果尚未指定该选项,也可以从命令行使用该标志启用它。
gulp常用插件之gulp-imagemin使用的更多相关文章
- 精通gulp常用插件
本文主要展示的是gulp常用插件的使用方法和用途,通过对插件的熟练运用达到精通gulp.不定期更新.可以到github上面下载DEMO. github地址:lin-xin/gulp-plugins 匹 ...
- node和gulp实现前端工程自动化(附:gulp常用插件)
/** * 1. LESS编译 压缩 合并 * 2. JS合并 压缩 混淆 * 3. img复制 * 4. html压缩 */ // 在gulpfile中先载入gulp包,因为这个包提供了一些APIv ...
- gulp常用插件之gulp-eslint使用
更多gulp常用插件使用请访问:gulp常用插件汇总 ** gulp-eslint**这是一个用于识别和报告在ECMAScript/JavaScript代码中找到的模式的Gulp插件.. 更多使用文档 ...
- gulp常用插件之gulp-babel使用
更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-babel这是Babel的Gulp插件. 此自述文件适用于gulp-babel v8 + Babel v7检查7.x分支以了解使用Bab ...
- gulp常用插件之gulp-postcss使用
更多gulp常用插件使用请访问:gulp常用插件汇总 ** gulp-postcss**这是一款通过多个插件通过管道传递CSS,但是仅解析一次CSS. 更多使用文档请点击访问gulp-postcss工 ...
- gulp常用插件之cssnano使用
更多gulp常用插件使用请访问:gulp常用插件汇总 cssnano这是一款将你的 CSS 文件做 多方面的的优化,以确保最终生成的文件 对生产环境来说体积是最小的插件. 更多使用文档请点击访问cha ...
- gulp常用插件之pump使用
更多gulp常用插件使用请访问:gulp常用插件汇总 pump这是一款小型节点模块,可将流连接在一起并在其中一个关闭时将其全部销毁. 使用标准source.pipe(dest)源时,如果dest发出关 ...
- gulp常用插件之gulp-notify使用
更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-notify这是一款gulp通知插件. 更多使用文档请点击访问gulp-notify工具官网. 安装 一键安装不多解释 npm inst ...
- gulp常用插件之gulp-beautify使用
更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-beautify这是一款使用js-beautify进行资产美化插件. 更多使用文档请点击访问gulp-beautify工具官网. 安装 ...
随机推荐
- 强烈推荐 10 款珍藏的 Chrome 浏览器插件
Firebug 的年代,我是火狐(Mozilla Firefox)浏览器的死忠:但后来不知道为什么,该插件停止了开发,导致我不得不寻求一个新的网页开发工具.那段时间,不少人开始推荐 Chrome 浏览 ...
- c++ 中全局/静态存储区的内存污染问题
今天研究用回溯法解决八皇后问题,碰到了一个有趣的小问题. 看这篇随笔前,最好先看看我上一篇所写的 c++ 内存分配中一个有趣的小问题. 先看代码 #pragma once #pragma execut ...
- 简化 Spring Boot 项目部署,Flyway 搞起来
虽然我之前录了一个微人事(https://github.com/lenve/vhr)部署视频(新版微人事部署教程来啦),但是由于这次升级涉及到了 Redis 和 RabbitMQ,所以在本地跑微人事还 ...
- python学习(8)实例:写一个简单商城购物车的代码
要求: 1.写一段商城程购物车序的代码2.用列表把商城的商品清单存储下来,存到列表 shopping_mail3.购物车的列表为shopping_cart4.用户首先输入工资金额,判断输入为数字5.用 ...
- 在Thinkphp3.1中使用Mongo的具体操作
最近研究Mongo项目都是用TP开发的,先介绍下Mongo在TP3.1中的用法 首先要确保你的PHP环境中已经安装好Mongo扩展,在实际项目中大多数都是Mysql数据库为主的,那么如何添加一个Mon ...
- 在.NET Core中使用MachineKey
在.NET Core中使用MachineKey 姐妹篇:<ASP.NET Cookie是怎么生成的> 姐妹篇:<.NET Core验证ASP.NET密码> 在上篇文章中,我介绍 ...
- 处理异常未知端口 Lsof命令
需要使用的命令: ss -tnl 显示所有tcp已被监听的端口 lsof -i:端口 显示所有打开该端口的进程 工作实例: 某天通过ss -tnl发现有不认识的正在被监听的端口 ? 于是使用lso ...
- pretty-errors:美化python异常输出以使其清晰易读
1. 安装pretty-errors python -m pip install pretty_errors 2.如果你想让你的每一个程序都能这样在报错时也保持美貌,那么运行下面这这行命令,就不用每次 ...
- 9种分布式ID生成之 美团(Leaf)实战
整理了一些Java方面的架构.面试资料(微服务.集群.分布式.中间件等),有需要的小伙伴可以关注公众号[程序员内点事],无套路自行领取 更多优选 一口气说出 9种 分布式ID生成方式,面试官有点懵了 ...
- mysql随机抽取数据
-- 慢 ; -- 较慢 SELECT * FROM `table` WHERE id >= (SELECT floor( RAND() * ((SELECT MAX(id) FROM `t ...