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,让修改的文件同步到复制到的位置

 gulp.task('watch', function(){
gulp.watch('index.html', ['copy-index']);
gulp.watch('images/**/*.{jpg,png}', ['images'];
gulp.watch(['xml/*.xml', 'json/*.json', '!json/secret-*.json'], ['data']);
});
插件:
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插件:

 var less = require('gulp-less');
gulp.task('less', function(){
return gulp.src('stylesheets/**/*.less')
.pipe(less())
.pipe(gulp.dest('dest/css'));
});
gulp-connect插件:

 var connect = require('gulp-connect');
gulp.task('server', function(){
connect.server({
root:'dist'
});
});

gulp-connect插件:实时刷新

 var connect = require('gulp-connect');
gulp.task('server', function(){
connect.server({
root:'dist',
livereload:true //开启实时刷新
});
});
var gulp = require('gulp');
gulp.task('copy-index',function(){
return gulp.src('index.html')
.pipe(gulp.dest('dist'))
.pipe(connect.reload()); //重新reload文件,不需要刷新,有点类似于angular的双向绑定
});
gulp.task('default', ['server', 'watch']); //让其默认执行
 
 

gulp基本入门的更多相关文章

  1. gulp详细入门教程

    本文链接:http://www.ydcss.com/archives/18 gulp详细入门教程 简介: gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:她不仅能对网站资源进行优 ...

  2. 【原】gulp快速入门

    今天刚入职了一家新公司,结果明天就要开始项目了.上级说要用gulp来打包代码,所以今晚花了一晚来看这个gulp, 可以说已经入门了.所以做一个小小的总结 : 首先全局安装gulp npm instal ...

  3. gulp详细入门教程(转载)

    本文转载自: gulp详细入门教程

  4. gulp快速入门

    gulp快速入门 因为之前一直有人给我推荐gulp,说他这里好哪里好的.实际上对我来说够用就行.grunt熟悉以后实际上他的配置也不难,说到效率的话如果真是要完整打包上线也不在乎那么几秒时间,对于项目 ...

  5. gulp快速入门&初体验

    前言 一句话先 gulp 是一个可以简单和自动化"管理"前端文件的构建工具 先说我以前的主要工作,我主要是做游戏服务端的,用c++/python,所以我对东西的概念理解难免要套到自 ...

  6. gulp的使用以及Gulp新手入门教程

    Gulp新手入门教程 原文  http://w3ctrain.com/2015/12/22/gulp-for-beginners/ Gulp 是一个自动化工具,前端开发者可以使用它来处理常见任务: 搭 ...

  7. Gulp新手入门教程

    Gulp 是一个自动化工具,前端开发者可以使用它来处理常见任务: 搭建web服务器 文件保存时自动重载浏览器 使用预处理器如Sass.LESS 优化资源,比如压缩CSS.JavaScript.压缩图片 ...

  8. JS那些事儿——Gulp的入门使用

    前言 新人使用gulp的一个记录. 首先对于第一个新事物,我会问gulp这是什么? 答:gulp是一个自动化构建工具,它可以做一些自动化的任务,比如: 检查Javascript 编译Sass(或Les ...

  9. 前端打包构建工具gulp快速入门

    因为之前一直有人给我推荐gulp,说他这里好哪里好的.实际上对我来说够用就行.grunt熟悉以后实际上他的配置也不难,说到效率的话确实是个问题,尤其项目大了以后,目前位置遇到的项目都还可以忍受.不过不 ...

  10. gulp详细入门教程-gulp demo download

    简介: gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:她不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成:使用她,我们不仅可以很愉快的编写代码 ...

随机推荐

  1. hibernate笔记3--hql查询

    1.Query:他是一种比较面向对象的查询方式,query查询也叫做hql查询(hibernate query language),使用query查询,需要接受一个         hql语句进行查询 ...

  2. Java图形界面开发—简易登录注册小程序

    登录注册小代码,将学过的一些小知识融合在一起进行了使用,加深印象.本例中如果有注释不详细的地方,详见其它博客. Java程序操作数据库SQLserver详解 功能介绍:简单的登录注册系统,使用了数据库 ...

  3. C#工程缺少IIS组件无法打开的解决办法

    作者:朱金灿 来源:http://blog.csdn.net/clever101 同事使用VS打开一个C#工程,出现下面的错误: 这个工程是C#的桌面工程,跟IIS无关,去安装IIS太麻烦了.我想到一 ...

  4. 微信iOS端无法执行jquery on()方法

    微信iOS端无法执行jquery on()方法,click方法可以, 如下代码是不会执行的: $(function(){ $('body').on('click','.cka',function(){ ...

  5. datagrid数据表格使用总结

    一.加载的css文件 easyui 基本样式: <link href="../easyui/easyui1.5.css" rel="stylesheet" ...

  6. Linux让Apache支持中文URL图片/文件名

    需要用到iconv_hook和mod_encoding Apache(32位): 安装环境:CentOS 5.6 + Apache 2.2.15 (Apache2.4同样适用) 安装结果:安装后支持“ ...

  7. pat乙级1051

    当结果中a或者b小于0,大于0.005时,保留两位小数会输出-0.00,但应输出0.00. #include <iostream> #include <math.h> usin ...

  8. java Vamei快速教程11 对象引用

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我们之前一直在使用“对象”这个概念,但没有探讨对象在内存中的具体存储方式.这方面的 ...

  9. JavaScript: apply , call 方法

    我在一开始看到javascript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这里我做如下笔记,希望和大家 ...

  10. 使用Intellij IDEA 14.0.2 编译项目耗时特别长的问题

    前段时间在使用IDEA编译项目时后台编译会一直Hang在那.如图: 刚开始以为是升级将IDEA从13升级至14的问题,退回到13 问题依就.Google了下,按照相应方法还是无果,没办法 还重装了下系 ...