zoukankan      html  css  js  c++  java
  • 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直到完全优化
                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如果尚未指定该选项,也可以从命令行使用该标志启用它。
  • 相关阅读:
    项目总结1--技术
    基于MFC的Opengl实现动画
    vs2010 MFC Opengl实现
    设计模式-状态模式
    设计模式-访问者模式
    设计模式-责任链模式
    设计模式-中介者模式
    设计模式-命令模式
    设计模式-备忘录模式
    设计模式-观察者模式
  • 原文地址:https://www.cnblogs.com/jiaoshou/p/12182198.html
Copyright © 2011-2022 走看看