gulp常用插件之gulp-imagemin使用

更多gulp常用插件使用请访问:gulp常用插件汇总


gulp-imagemin这是一款缩小PNG,JPEG,GIF和SVG图像的插件。

更多使用文档请点击访问gulp-imagemin工具官网

安装

一键安装不多解释

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直到完全优化
}
  • verbose(冗长的)
    类型:boolean
    默认值:false
    启用此功能将在传递给的每个图像上记录信息gulp-imagemin
gulp-imagemin: ? image1.png (already optimized)
gulp-imagemin: ? image2.png (saved 91 B - 0.4%)
  • silent(无声)
    类型:boolean
    默认值:false
    不要记录已缩小的图像数。
    --silent如果尚未指定该选项,也可以从命令行使用该标志启用它。

相关推荐