zoukankan      html  css  js  c++  java
  • gulp使用

    gulp需要全局安装和当前目录都安装才能使用gulp命令

    安装gulp插件

    npm install gulp-rev gulp-rev-replace gulp-useref gulp-filter gulp-uglify gulp-csso --save-dev

    gulp-rev:给每个文件添加版本号,根据文件内容计算hash码,修改文件名,避免客户端缓存问题

    gulp-rev-replace:更新index中的引用

    gulp-useref:通过注释合并js、css文件

    gulp-filter:将stream里的文件根据一定的规则进行筛选过滤

    gulp-uglify:压缩js

    gulp-csso:压缩css

    //声明依赖包
    var gulp = require('gulp');
    var rev = require('gulp-rev');
    var revReplace = require('gulp-rev-replace');
    var useref = require('gulp-useref');
    var filter = require('gulp-filter');
    var uglify = require('gulp-uglify');
    var csso = require('gulp-csso')
    
    gulp.task("default",function () {
      //定义过滤规则,!index.html指忽略此文件,index.html不用加版本号
        var jsFilter = filter('**/*.js',{restore: true});
        var cssFilter = filter('**/*.css',{restore: true});
        var indexHtmlFilter = filter(['**/*','!index.html'],{restore: true})
    
        return gulp.src('index.html')  //找到index.html文件进行处理
            .pipe(useref())       //通过useref插件分析index中带有注释的css和js文件,放入流中,此时流中包含index、css、js文件
            .pipe(jsFilter)       //筛选js文件
            .pipe(uglify())       //压缩
            .pipe(jsFilter.restore)    //js文件返回流
            .pipe(cssFilter)           //筛选css文件
            .pipe(csso())              //压缩
            .pipe(cssFilter.restore)   //css文件返回流
            .pipe(indexHtmlFilter)     //筛选所有文件,排除index.html
            .pipe(rev())         //生成hash版本号文件名
            .pipe(indexHtmlFilter.restore) //文件返回流
            .pipe(revReplace())        //更新index.html中对css、js的引用 
            .pipe(gulp.dest('dist'));  //将文件流放入dist目录
    })

    使用/*! ... */的注释不会被压缩,如果你的版权声明不想被压缩可以使用/*! ... */注释。

    css注释

    <!-- build:css css/combined.css -->
    <link>
    <!-- endbuild -->

    javascript注释

    <!-- build:js js/combined.js -->
    <script></script>
    <!-- endbuild -->
  • 相关阅读:
    无锁队列的实现 | 酷壳 CoolShell.cn
    简明 Vim 练级攻略 | 酷壳 CoolShell.cn
    分享:lucene 的评分机制
    JS实现面向对象的设计
    EF架构~性能高效的批量操作(Update篇)
    将不确定变为确定~transactionscope何时提升为分布式事务?
    将不确定变为确定~Linq to SQL不能随机排序吗?
    vs2012~ 开发人员的福音
    白领职场必懂的22条潜规则(转载)
    经典面试题(转载)
  • 原文地址:https://www.cnblogs.com/tgxh/p/6322375.html
Copyright © 2011-2022 走看看