1. 程式人生 > >gulp常用外掛-gulp-imagemin

gulp常用外掛-gulp-imagemin

使用gulp-imagemin壓縮圖片檔案(包括PNG、JPEG、GIF和SVG圖片)。

配置gulpfile.js

例子一

var gulp = require('gulp'),
    imagemin = require('gulp-imagemin');

gulp.task('testImagemin', function () {
    gulp.src('src/img/*.{png,jpg,gif,ico}')
        .pipe(imagemin())
        .pipe(gulp.dest('dist/img'));
});

例子二

var gulp = require
('gulp'), imagemin = require('gulp-imagemin'); gulp.task('testImagemin', function () { gulp.src('src/img/*.{png,jpg,gif,ico}') .pipe(imagemin({ optimizationLevel: 5, //型別:Number 預設:3 取值範圍:0-7(優化等級) progressive: true, //型別:Boolean 預設:false 無失真壓縮jpg圖片 interlaced: true
, //型別:Boolean 預設:false 隔行掃描gif進行渲染 multipass: true //型別:Boolean 預設:false 多次優化svg直到完全優化 })) .pipe(gulp.dest('dist/img')); });

例子三

深度壓縮圖片

var gulp = require('gulp'),
    imagemin = require('gulp-imagemin'),
    //確保本地已安裝imagemin-pngquant [cnpm install imagemin-pngquant --save-dev]
pngquant = require('imagemin-pngquant'); gulp.task('testImagemin', function () { gulp.src('src/img/*.{png,jpg,gif,ico}') .pipe(imagemin({ progressive: true, svgoPlugins: [{removeViewBox: false}],//不要移除svg的viewbox屬性 use: [pngquant()] //使用pngquant深度壓縮png圖片的imagemin外掛 })) .pipe(gulp.dest('dist/img')); });

例子四

只壓縮修改的圖片。壓縮圖片時比較耗時,在很多情況下我們只修改了某些圖片,沒有必要壓縮所有圖片,使用”gulp-cache”只壓縮修改的圖片,沒有修改的圖片直接從快取檔案讀取(C:\Users\Administrator\AppData\Local\Temp\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'));
});

命令提示符執行:gulp testImagemin