博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何使用gulp给资源文件加上版本
阅读量:5919 次
发布时间:2019-06-19

本文共 2400 字,大约阅读时间需要 8 分钟。

如何使用gulp给资源文件加上版本

1.package.json文件部分插件
"dependencies": {    "del": "^1.1.1",    "gulp": "^3.8.11",    "gulp-autoprefixer": "^2.1.0",    "gulp-cache": "^0.2.8",    "gulp-clean": "^0.3.1",    "gulp-concat": "^2.5.2",    "gulp-imagemin": "^2.2.1",    ...  }
2.安装所需的gulp插件
$ npm install
3.gulpfile.js
'use strict';var gulp = require('gulp');/*global -$ 加载需使用的gulp插件*/var $ = require('gulp-load-plugins')();
  • 配置选项(也可以直接在任务中写相对路径)

/*  *管理资源文件路径集合  *config.static下  *css scripts images 替换为自己的路径(可按照此配置管理) */var config = {};// 源资源文件路径config['static'] = {    styles: 'static/styles/*.*',    scripts: 'static/scripts/*.*',    images: 'static/images/*.*',    html:'static/*.html'};...
  • 图片任务流处理方法

/* *images 任务流 */gulp.task('images', function () {    return gulp.src(config['static'].images)        .on('error', function (err) {            console.error('Error!', err.message);         })        .pipe($.imagemin({            distgressive: true,            progressive: true,            interlaced: true,            svgoPlugins: [{removeViewBox: false}],            use: [require('imagemin-pngquant')()]        }))        .pipe(gulp.dest(config['rev'].images))        .pipe($.notify({ message: 'images task complete' }));});/* *img 添加版本任务流 *use gulp-rev to version the rev files and generate the 'rev-manifest.json' file */gulp.task('img', ['images'], function(){    return gulp.src(config['rev'].images_file)        .pipe($.rev())        .pipe(gulp.dest(config['dist'].images))        .pipe($.rev.manifest({            base: 'dist',            merge: true //如果存在 rev-manifest.json文件则合并        }))        .pipe(gulp.dest('dist'));});
  • css任务流处理方法

  • js任务流处理方法

  • 加入版本任务流处理方法

gulp.task('rev',['img','css','js'], function () {    gulp.src(['rev-manifest.json', config['static'].html])        .pipe( $.revCollector({            replaceReved: true,            dirReplacements: {                //路径替换                // 'css': '/dist/css',                // '/js/': '/dist/js/',                // 'cdn/': function(manifest_value) {                //     return '//cdn' + (Math.floor(Math.random() * 9) + 1) + '.' + 'exsample.dot' + '/img/' + manifest_value;                // }            }        }) )        .pipe($.minifyHtml({conditionals: true, loose: true}))        .pipe(gulp.dest('dist'));    gulp.task('del', require('del')('rev'));//最后删除过渡文件目录});
  • 开启任务

gulp.task('test', ['clean'], function () {  gulp.start('rev');});

转载地址:http://tnbvx.baihongyu.com/

你可能感兴趣的文章
《R与Hadoop大数据分析实战》一1.5 Hadoop的特点
查看>>
NASA操控好奇号的Linux 可能是红帽或Xfce衍生版
查看>>
《SEM长尾搜索营销策略解密》一一2.10 小领域文化进入红利期
查看>>
虚拟现实和现实增强技术带来的威胁
查看>>
【PMP认证考试之个人总结】第 8 章 人力资源管理
查看>>
《网站情感化设计与内容策略》一10.6 规划内容管理
查看>>
IT人的架构书单:如何赋予软件以灵魂
查看>>
设计模式基本原则
查看>>
排序——5.快速排序
查看>>
三张图看遍Linux 性能监控、测试、优化工具
查看>>
利用亚马逊AWS搭建个人服务器
查看>>
推荐给中小团队使用的免费项目管理工具
查看>>
性能知识点二
查看>>
MySQL组合索引和最左匹配原则
查看>>
属性 (Properties)
查看>>
requests + Beautiful 爬取boss直聘
查看>>
我的友情链接
查看>>
关于传输自环导致中兴2826交换机无法网管的故障案例
查看>>
Java之内存模型FAQ
查看>>
tomcat配置调优记录
查看>>