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
如果尚未指定该选项,也可以从命令行使用该标志启用它。