• 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 -->
  • 相关阅读:
    Validate US Telephone Numbers
    7月份总结
    Arguments Optional
    Everything Be True
    手机开发网页模板(20140124)
    整站开发初始化
    switch滑动开关
    js 面向对象
    Bootstrap 导航栏
    Bootstrap 标签页
  • 原文地址:https://www.cnblogs.com/tgxh/p/6322375.html
Copyright © 2020-2023  润新知