zoukankan      html  css  js  c++  java
  • gulp基本入门

    gulp用于自动化和提高工作流,类似于grunt。gulp适用于nodejs平台。
     
    gulp基础:
    gulp两个主要的功能是读取想要处理的文件,把处理好的文件放到指定的地方
    gulp.src()找出我们需要处理的文件
    .pipe()用于处理这些被gulp.src()找出来的文件,他类似于管道,可以指定他的功能
    .pipe(gulp.dest())将处理好的文件放到指定的地方,gulp.dest()的括号里面用于填写指定的位置
    以上的几步合在一起就相当于一个复制的功能。将一个文件复制到另一个地方,源文件还是存在的。

    eg:
    //创建一个对象,这样gulp就拥有'gulp'提供的全部的属性和方法了
    var gulp = require('gulp');
    //gulp.task()用来创建一个任务
    //copy-index是方法名,执行这段的代码的时候直接在命令行输入gulp copy-index即可
    gulp.task('copy-index',function(){
        return gulp.src('index.html').pipe(gulp.dest('dist'));
    });
     
    gulp.task('images',function(){
        //images/*.jpg代表的是读取images文件夹下的所有jpg的文件
        //images/*.{png,jpg}  images下面的png和jpg图片
        //images/**/*   images下面的所有子目录
        return gulp.src('images/*.jpg').pipe(gulp.dest('dist/images'));
    });

    gulp.task('data',function(){
        //['xml/*.xml,'json/*.json']  相当于用正则来匹配需要刷选的文件
        return gulp.src(['xml/*.xml', 'json/*.json']).pipe(gulp.dest('dist/data'));
    });
     
    排除文件:在前面加一个!即可例如:
    ['xml/*.xml', 'json/*.json', '!json/secret-*.json']

    //创建依赖,将原本的子任务全部集合到一个主任务上面来。方便管理
    gulp.task('build', ['copy-index', 'images', 'data'],function(){
        console.log('编译成功!');
    });
    https://app.yinxiang.com/Home.action#n=f8e69469-2fb0-4c21-9c60-083c059a57f2&ses=4&sh=2&sds=5&
    //监视文件,当文件改变的时候,就会重新执行一次gulp,让修改的文件同步到复制到的位置
    1 gulp.task('watch', function(){
    2     gulp.watch('index.html', ['copy-index']);
    3     gulp.watch('images/**/*.{jpg,png}', ['images'];
    4     gulp.watch(['xml/*.xml', 'json/*.json', '!json/secret-*.json'], ['data']);
    5 });

     

    插件:
    gulp提供很好的接口,但是他本身并不会做太多的事情,可以使用插件来扩展gulp的功能,编译less文件,合并,压缩等。
    gulpjs.com/plugins/这个地址可以找到gulp可用的插件
     
    常用的插件:
    gulp-sass插件:(编译)
    gulp-less插件:(编译)
    gulp-connect插件:(创建本地服务器)
    实时预览
    gulp-concat插件:(合并文件)
    gulp-uglify插件:(最小化js文件)
    gulp-rename插件:(重命名文件)
    gulp-minify-css插件:(最小化css文件)
    gulp-imagemin插件:(最小化图像)
     
    gulp-less插件:
    1 var less = require('gulp-less');
    2 gulp.task('less', function(){
    3     return gulp.src('stylesheets/**/*.less')
    4     .pipe(less())
    5     .pipe(gulp.dest('dest/css'));
    6 });
    7  
    gulp-connect插件:
    1 var connect = require('gulp-connect');
    2 gulp.task('server', function(){
    3     connect.server({
    4         root:'dist'
    5     });
    6 });

    gulp-connect插件:实时刷新

     1 var connect = require('gulp-connect');
     2 gulp.task('server', function(){
     3     connect.server({
     4         root:'dist',
     5         livereload:true         //开启实时刷新
     6     });
     7 });
     8 var gulp = require('gulp');
     9 gulp.task('copy-index',function(){
    10     return gulp.src('index.html')
    11     .pipe(gulp.dest('dist'))
    12     .pipe(connect.reload());    //重新reload文件,不需要刷新,有点类似于angular的双向绑定
    13 });
    14 gulp.task('default', ['server', 'watch']);     //让其默认执行
     
     
  • 相关阅读:
    《Programming WPF》翻译 第8章 1.动画基础
    一些被遗忘的设计模式
    《Programming WPF》翻译 第4章 数据绑定
    《Programming WPF》翻译 第3章 控件
    《Programming WPF》翻译 第5章 样式和控件模板
    《Programming WPF》翻译 第7章 绘图
    《Programming WPF》翻译 第9章 自定义控件
    《Programming WPF》翻译 第7章 绘图 (2)
    《Programming WPF》翻译 第8章 前言
    关于Debug和Release之本质区别
  • 原文地址:https://www.cnblogs.com/marymei0107/p/4620666.html
Copyright © 2011-2022 走看看