• gulp配置


    /* gulp配置 */
    /* gulp配置 */
    var gulp = require('gulp'),
        concat = require('gulp-concat'),
        rename = require('gulp-rename'),
        uglify = require('gulp-uglify'),
        rev = require('gulp-rev-append'), //自动添加版本号
        browserSync = require('browser-sync').create(); //热更新    $ cnpm install browser-sync gulp --save-dev
    
    //合并js
    gulp.task('testConcat', function() {
        gulp.src(['../js/main/*.js', '../js/tools_fun/*.js'])
            .pipe(concat('all.js')) //合并后的文件名
            .pipe(gulp.dest('../dist/js'));
    });
    //压缩js文件
    gulp.task('jsOnlymin', function() {
        gulp.src('../js/*.js')
            .pipe(uglify())
            .pipe(gulp.dest('../dist/js'));
    });
    
    //合并、压缩、并且输出一个新的js文件
    gulp.task('jsmin', function() {
        gulp.src(['../js/main/*.js', '../js/tools_fun/*.js'])
            .pipe(concat('all.js'))
            .pipe(uglify())
            .pipe(rename({ extname: '.min.js' }))
            .pipe(gulp.dest('../dist/js'))
            .pipe(browserSync.reload({ stream: true }));
    });
    
    //添加版本号
    gulp.task('dev', ['jsmin'], function() {
    
        gulp.src('../index.html')
            .pipe(rev())
            .pipe(gulp.dest('../'))
            .pipe(browserSync.reload({ stream: true }));
    
    });
    
    //  热更新: 使用默认任务启动Browsersync,监听JS文件
    gulp.task('serve', ['dev'], function() {
        gulp.start('dev');
    
        // 从这个项目的根目录启动服务器
        browserSync.init({
            server: {
                baseDir: "../../TOOLS"
            }
        });
        gulp.watch("../js/**/*.js", ['dev']); //监控文件变化,自动更新 
    });
    
    //默认任务
    gulp.task('default', ['serve']);
    
    
    //使用方法
    
    // 1.自动添加版本号配置:后缀名后面加 [ ?rev=@@hash ];
    // gulp-rev-append 插件将通过正则(?:href|src)=”(.*)[?]rev=(.*)[“]查找并给指定链接填加版本号(默认根据文件MD5生成,因此文件未发生改变,此版本号将不会变)
    {
        /* <img src="img/test.jpg?rev=@@hash"  />
        <script src="js/all.min.js?rev=@@hash"></script> */
    }
    
    

    gulp配置完整流程版

    var gulp     = require('gulp'),  
        concat   = require('gulp-concat'),//- 多个文件合并为一个;  
        cleanCSS = require('gulp-clean-css'),//- 压缩CSS为一行;  
        ugLify   = require('gulp-uglify'),//压缩js  
        imageMin = require('gulp-imagemin'),//压缩图片  
        pngquant = require('imagemin-pngquant'), // 深度压缩  
        htmlMin  = require('gulp-htmlmin'),//压缩html  
        changed  = require('gulp-changed'),//检查改变状态  
        less     = require('gulp-less')//压缩合并less  
        del      = require('del')  
        browserSync = require("browser-sync").create();//浏览器实时刷新  
      
    //删除dist下的所有文件  
    gulp.task('delete',function(cb){  
        return del(['dist/*','!dist/images'],cb);  
    })  
      
    //压缩html  
    gulp.task('html', function () {  
        var options = {  
            removeComments: true,//清除HTML注释  
            collapseWhitespace: true,//压缩HTML  
            removeScriptTypeAttributes: true,//删除<script>的type="text/javascript"  
            removeStyleLinkTypeAttributes: true,//删除<style>和<link>的type="text/css"  
            minifyJS: true,//压缩页面JS  
            minifyCSS: true//压缩页面CSS  
        };  
        gulp.src('src/index.html')  
            .pipe(changed('dist', {hasChanged: changed.compareSha1Digest}))  
            .pipe(htmlMin(options))  
            .pipe(gulp.dest('dist'))  
            .pipe(browserSync.reload({stream:true}));  
    });  
      
    //实时编译less  
    gulp.task('less', function () {  
        gulp.src(['./src/less/*.less']) //多个文件以数组形式传入  
            .pipe(changed('dist/css', {hasChanged: changed.compareSha1Digest}))  
            .pipe(less())//编译less文件  
            .pipe(concat('main.css'))//合并之后生成main.css  
            .pipe(cleanCSS())//压缩新生成的css  
            .pipe(gulp.dest('dist/css'))//将会在css下生成main.css  
            .pipe(browserSync.reload({stream:true}));  
    });  
      
    //压缩js  
    gulp.task("script",function(){  
        gulp.src(['src/js/jquery-3.1.0.min.js', 'src/js/index.js'])  
            .pipe(changed('dist/js', {hasChanged: changed.compareSha1Digest}))  
            .pipe(concat('index.js'))  
            .pipe(ugLify())  
            .pipe(gulp.dest('dist/js'))  
            .pipe(browserSync.reload({stream:true}));  
    });  
      
    // 压缩图片  
    gulp.task('images', function () {  
        gulp.src('./src/images/*.*')  
            .pipe(changed('dist/images', {hasChanged: changed.compareSha1Digest}))  
            .pipe(imageMin({  
                progressive: true,// 无损压缩JPG图片  
                svgoPlugins: [{removeViewBox: false}], // 不移除svg的viewbox属性  
                use: [pngquant()] // 使用pngquant插件进行深度压缩  
            }))  
            .pipe(gulp.dest('dist/images'))  
            .pipe(browserSync.reload({stream:true}));  
    });  
      
    //启动热更新  
    gulp.task('serve', ['delete'], function() {  
        gulp.start('script','less','html');  
        browserSync.init({  
            port: 2017,  
            server: {  
                baseDir: ['dist']  
            }  
        });  
        gulp.watch('src/js/*.js', ['script']);         //监控文件变化,自动更新  
        gulp.watch('src/less/*.less', ['less']);  
        gulp.watch('src/*.html', ['html']);  
        gulp.watch('src/images/*.*', ['images']);  
    });  
      
    gulp.task('default',['serve']);  
    
    

    http://blog.csdn.net/beverley__/article/details/55213235

  • 相关阅读:
    简洁又漂亮的单网页404页源码(html格式404源码)
    运行bee run之后出现的错误以及解决方法
    window beego 安装出现的错误
    golang gin框架 使用swagger生成api文档
    go语言切片作为函数参数
    Go中函数接收器不能改变接收者的地址
    docker 删除none镜像
    redis下载安装
    git切换分支
    angular自定义验证器添加入模板驱动表单
  • 原文地址:https://www.cnblogs.com/koala0521/p/7550775.html
Copyright © 2020-2023  润新知