• gulp记录


    凹嗷嗷,之前的记录啊,眼泪汪遍大江南北。

    虽然下载gulp插件时,我煮了饭,扫了地,睡得昏天地暗后插件还没下载完泪奔了两下,gulp还是拯救我的小精灵。

    参考资料

    1.http://www.cnblogs.com/starof/p/5194622.html

    2.http://www.cnblogs.com/givebest/p/4707432.html(以下两张大图来自这个大神的博客截图)

    var gulp = require('gulp'),
        runSequence = require('run-sequence'), //保证串发运行
        gulpif = require('gulp-if'),
        uglify = require('gulp-uglify'),
        less = require('gulp-less'),
        csslint = require('gulp-csslint'),
        rev = require('gulp-rev'),
        minifyCss = require('gulp-minify-css'),
        changed = require('gulp-changed'),
        jshint = require('gulp-jshint'),
        stylish = require('jshint-stylish'),
        revCollector = require('gulp-rev-collector'),
        minifyHtml = require('gulp-minify-html'),
        autoprefixer = require('gulp-autoprefixer'),
        del = require('del'),
        rename = require('gulp-rename'),
        notify = require('gulp-notify'),
        imagemin = require('gulp-imagemin');
    var condition = true;
    
    // gulp.task('jsMin',function(){
    //     //将你的默认的任务代码放在
    //     return gulp.src(['src/js/**/*js', 'src/js/!**/*.min.js'])
    //     .pipe(uglify())
    //     .pipe(rename({suffix:'.min'}))
    //     .pipe(gulp.dest('dest/js'))
    //     .pipe(notify({message:'压缩成功'}));
    // });
    // gulp.task('auto',function(){
    //     //利用watch方法监听js文件,如果变动则执行任务
    //     gulp.watch('src/js/**/*.js',['jsMin']);
    // });
    // gulp.task('default',['auto']);
    
    
    var jsSrc = 'src/js/**/*.js',
        jsDest = 'dist/js',
        jsRev = 'src/js/rev',
        cssSrc = 'src/css/**/*.css',
        cssDest = 'dist/css',
        cssRev = 'src/css/rev',
        imageSrc = 'src/image/**/*',
        imageDest = 'dist/image';
    
    //清理cssRev
    gulp.task('clean',function() {
        return del([cssRev,jsRev]);
    });
    
    //检测JS
    gulp.task('lintJs',function(){
        return gulp.src(jsSrc)
        .pipe(jshint({
            "undef" : false,
            "unused" : false
        }))
        .pipe(jshint.reporter(stylish)) //高亮提示
        .pipe(jshint.reporter('fail'));
    });
    //将图片版本号更新到Js
    gulp.task('updateImageRevToJs',function(){
        return gulp.src(['src/rev/image/*.json',jsSrc])
        .pipe(revCollector())
        .pipe(gulp.dest(jsRev));
    });
    //压缩JS
    gulp.task('miniJS',function(){
        return gulp.src(jsRev+'/**/*.js')
        .pipe(gulpif(condition,uglify()))
        .pipe(rev())
        .pipe(gulp.dest(jsDest))
        .pipe(rev.manifest())
        .pipe(gulp.dest('src/rev/js'));
    });
    //检测css
    gulp.task('lintCss',function(){
        return gulp.src(cssSrc)
        .pipe(csslint())
        .pipe(csslint.reporter())
        .pipe(csslint.failReporter());
    });
    //将图片版本号更新到css
    gulp.task('updateImageRevToCss',function(){
        return gulp.src(['src/rev/image/*.json',cssSrc])
        .pipe(revCollector())
        .pipe(gulp.dest(cssRev));
    });
    //压缩css
    gulp.task('miniCss',function(){
        return gulp.src(cssRev+'/**/*.css')
        .pipe(revCollector())
        .pipe(gulpif(condition,minifyCss()))
        .pipe(rev())
        .pipe(gulp.dest(cssDest))
        .pipe(rev.manifest())
        .pipe(gulp.dest('src/rev/css'));
    });
    
    //压缩image
    gulp.task('minImages',function(){
        return gulp.src(imageSrc)
        .pipe(imagemin())
        .pipe(rev())
        .pipe(gulp.dest(imageDest))
        .pipe(rev.manifest())
        .pipe(gulp.dest('src/rev/image'));
    });
    
    
    //压缩html/更新引入文件版本
    gulp.task('miniHtml',function(){
        return gulp.src(['src/rev/**/*.json', 'src/html/**/*.html'])
        .pipe(revCollector())
        .pipe(gulpif(condition,minifyHtml({
            empty:true,
            spare:true,
            quotes:true
        })))
        .pipe(gulp.dest('dist/html'));
    });
    //开发构建
    gulp.task('dev',function(done){
        runSequence(
            ['clean'],
            ['minImages'],
            ['lintCss'],
            ['updateImageRevToCss'],
            ['miniCss'],
            ['lintJs'],
            ['updateImageRevToJs'],
            ['miniJS'],
            ['miniHtml'],
        done);
    });
    gulp.task('default',['dev']);

    ps:还有合并js,less,watch等还没有研究。

  • 相关阅读:
    python 实现单链表
    java解压缩zip
    关于 ElesticSearch 安装
    spring boot 与 spring cloud 关系
    Java并发编程:深入剖析ThreadLocal
    mybatis like 的坑
    JMeter 压力测试使用CSV参数
    IntelliJ IDEA创建多模块依赖项目
    关于IntelliJ IDEA删除项目
    switchhost -- 切换host的工具
  • 原文地址:https://www.cnblogs.com/haitangxun/p/5656890.html
Copyright © 2020-2023  润新知