gulp之自动化静态资源压缩合并加版本号

简介: gulp之自动化压缩合并加版本号这个方案主要是为了实现js/css/image的压缩合并、自动添加版本号、自动加浏览器前缀和压缩html。先把下面这里插件 npm i (插件名) -D 安装到项目环境内gulp-sequence //顺序执行任务gulp-csso //css压缩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! 有问题,不懂的,错误,请大家积极留言!

相关文章
|
6月前
|
Shell Linux
shell 脚本常用于自动化执行文件备份与压缩的任务
shell 脚本常用于自动化执行文件备份与压缩的任务
68 1
|
SQL 监控 搜索推荐
自动化测试平台V1.0版本正式上线啦!
自动化测试平台V1.0版本正式上线啦!
246 0
|
18天前
|
JavaScript 前端开发 搜索推荐
Gulp:构建自动化与任务管理的强大工具
【10月更文挑战第13天】Gulp:构建自动化与任务管理的强大工具
52 0
|
5月前
|
Web App开发 IDE Java
自动化测试谷歌浏览器和其驱动版本差不多却还是报错The chromedriver version (121.0.6167.184) detected in PATH at DPythonchromed
自动化测试谷歌浏览器和其驱动版本差不多却还是报错The chromedriver version (121.0.6167.184) detected in PATH at DPythonchromed
132 2
|
监控 数据可视化 网络协议
自动化混沌工程 ChaosMeta V0.6 版本发布
混沌工程 ChaosMeta 的全新版本 V0.6.0 现已正式发布!新增了DNS异常、日志注入等故障能力,并且在可视化编排界面中提供了对流量注入、度量等各类节点的支持,提供自动化混沌工程的支撑能力。
471 0
自动化混沌工程 ChaosMeta V0.6 版本发布
|
运维 Kubernetes Devops
基于k8s的devOps自动化运维平台架构设计(中英文版本)
基于k8s的devOps自动化运维平台架构设计(中英文版本)
|
12月前
|
机器学习/深度学习 自然语言处理 算法
【网安AIGC专题10.11】2 ILF利用人类编写的 自然语言反馈 来训练代码生成模型:自动化反馈生成+多步反馈合并+处理多错误反馈+CODEGEN -M ONO 6.1 B model
【网安AIGC专题10.11】2 ILF利用人类编写的 自然语言反馈 来训练代码生成模型:自动化反馈生成+多步反馈合并+处理多错误反馈+CODEGEN -M ONO 6.1 B model
126 0
|
缓存 JavaScript 前端开发
gulp安装教程(简单的前端自动化教程)
gulp安装教程(简单的前端自动化教程)
260 0
|
前端开发 JavaScript 程序员
【万字长文】通过grunt、gulp和fit,彻底搞懂前端的自动化构建(三)
【万字长文】通过grunt、gulp和fit,彻底搞懂前端的自动化构建
112 0
|
前端开发 JavaScript API
【万字长文】通过grunt、gulp和fit,彻底搞懂前端的自动化构建(二)
【万字长文】通过grunt、gulp和fit,彻底搞懂前端的自动化构建
235 0