linux使用gulp压缩图片,gulp之自动化静态资源压缩合并加版本号

gulp之自动化压缩合并加版本号

这个方案主要是为了实现js/css/image的压缩合并、自动添加版本号、自动加浏览器前缀和压缩html。

先把下面这里插件 npm i (插件名) -D 安装到项目环境内

gulp-sequence //顺序执行任务

gulp-csso //css压缩

gulp-jshint //js检查

gulp-uglify'), //js压缩

gulp-imagemin //压缩图片

gulp-htmlmin //压缩html

gulp-clean //清空文件夹

gulp-rev //更改版本名 md5后缀

gulp-autoprefixer //加浏览器前缀

gulp-rev-collector //gulp-rev 的插件,用于html模板更改引用路径

目录结构

|- root

|    |-dist  //此目录为下面生成的

|        |-css

|        |-js

|        |-images

|        |-rev

|        |-index.html

|    |-node_modules

|    |-src  //资源目录

|        |-css

|        |-js

|        |-images

|        index.html

|    gulpfile.js

|    package.json

gulpfile.js文件

var gulp = require('gulp'),

gulpSequence = require('gulp-sequence'),    //同步执行任务

csso = require('gulp-csso'),    //css压缩

jshint = require('gulp-jshint'),    //js检查

uglify = require('gulp-uglify'),    //js压缩

imageMin = require('gulp-imagemin'),    //压缩图片

htmlMin = require('gulp-htmlmin'),  //压缩html

clean = require('gulp-clean'),    //清空文件夹

rev = require('gulp-rev'),    //更改版本名 md5后缀

autoFx = require('gulp-autoprefixer'),    //加浏览器前缀

revCollector = require('gulp-rev-collector');    //gulp-rev 的插件,用于html模板更改引用路径

//清空文件夹

gulp.task('clean', function(){

return gulp.src('dist', {read:false})

.pipe(clean());

});

//压缩css/加浏览器前缀

gulp.task('css', function(){

return gulp.src('src/css/*.css')

.pipe(autoFx({

browsers: ['last 2 versions', 'Android >= 4.0']

}))

.pipe(csso())

.pipe(rev())

.pipe(gulp.dest('dist/css'))

.pipe(rev.manifest())

.pipe(gulp.dest('dist/rev/css'));

});

//压缩js

gulp.task('js', function(){

return gulp.src('src/js/*.js')

.pipe(uglify())

.pipe(rev())

.pipe(gulp.dest('dist/js'))

.pipe(rev.manifest())

.pipe(gulp.dest('dist/rev/js'));

});

//压缩image

gulp.task('image', function(){

return gulp.src('src/images/*.{png,jpg,gif,ico}')

.pipe(imageMin({

optimizationLevel: 5,

progressive: true,

interlaced: true,

multipass: true

}))

.pipe(rev())

.pipe(gulp.dest('dist/images'))

.pipe(rev.manifest())

.pipe(gulp.dest('dist/rev/images'));

});

//改变css引用路径

gulp.task('revCss',function(){

return gulp.src(['dist/rev/**/*.json','dist/css/*.css'])

.pipe(revCollector({

replaceReved: true

}))

.pipe(gulp.dest('dist/css'));

});

//改变html引用路径

gulp.task('rev', function(){

return gulp.src(['dist/rev/**/*.json','src/*.html'])

.pipe(revCollector({

replaceReved: true

}))

.pipe(htmlMin())

.pipe(gulp.dest('dist/'));

});

gulp.task('default', gulpSequence('clean', 'css', 'js', 'image', 'revCss', 'rev'));    //按顺序执行任务

OK! 有问题,不懂的,错误,请大家积极留言!

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值