使用gulp-imagemin压缩图片文件(包括PNG、JPEG、GIF和SVG图片)css
1.一、gulp基本使用还未掌握?请参看: gulp详细入门教程node
1.二、本示例目录结构以下:git
2.一、github:https://github.com/sindresorhus/gulp-imagemingithub
2.二、安装:命令提示符执行 cnpm install gulp-imagemin --save-dev
npm
2.三、注意:没有安装cnpm请使用 npm install gulp-imagemin --save-dev
什么是cnpm,如何安装?json
2.四、说明:--save-dev
保存配置信息至 package.json 的 devDependencies 节点。为何要保存至package.json?gulp
3.一、基本使用缓存
1
2
3
4
5
6
7
8
|
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'));
});
|
3.二、gulp-imagemin其余参数 具体参看less
1
2
3
4
5
6
7
8
9
10
11
12
13
|
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'));
});
|
3.三、深度压缩图片svg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
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'));
});
|
3.三、只压缩修改的图片。压缩图片时比较耗时,在不少状况下咱们只修改了某些图片,没有必要压缩全部图片,使用”gulp-cache”只压缩修改的图片,没有修改的图片直接从缓存文件读取(C:UsersAdministratorAppDataLocalTempgulp-cache)。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
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'));
});
|
4.一、命令提示符执行:gulp testImagemin
5.一、本文有任何错误,或有任何疑问,欢迎留言说明。
来源:http://www.ydcss.com/archives/26