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. iOS开发 - 在状态栏显示FPS,CPU和内存信息

    原理 FPS的计算 CoreAnimation有一个很好用的类CADisplayLink,这个类会在每一帧绘制之前调用,并且可以获取时间戳.于是,我们只要统计出,在1s内的帧数即可. - (void) ...

  2. 报错:Program "sh" not found in PATH

    参考原文:http://vin-mail.blog.163.com/blog/static/37895280201211932919513/ 如果你按照我的方法 先配置了cygwin的环境变量,在打开 ...

  3. zip man man.config

    zip man man.config zip -r zip1 man.config man.zip gzip a tar -cvf test.tar /home/* tar -tf test.tar ...

  4. 一次对真实网站的SQL注入———SQLmap使用

    网上有许多手工注入SQL的例子和语句,非常值得我们学习,手工注入能让我们更加理解网站和数据库的关系,也能明白为什么利用注入语句能发现网站漏洞. 因为我是新手,注入语句还不太熟悉,我这次是手注发现的注点 ...

  5. 2018.5.22 Oracle安装配置在虚拟机中外部电脑连接服务

    1.拷贝老师的集成文件(win系统和oracle服务) 2.安装虚拟机,并且打开镜像文件 3.启动监听程序(实例服务[自动].监听服务) 4.查看虚拟机ip,此ip要主机ip在同一个网段 5.检查虚拟 ...

  6. mac 远程桌面提示: 证书或相关链无效

    左上角 RDC -->首选项-->安全性-->即使验证失败,也始终链接

  7. 【luogu P3608 [USACO17JAN]Balanced Photo平衡的照片】 题解

    题目链接:https://www.luogu.org/problemnew/show/P3608 乍一看很容易想到O(N^2)的暴力. 对于每个H[i]从i~i-1找L[i]再从i+1~n找R[i], ...

  8. CUDA高性能编程中文实战11章例子中多设备的例子编译提示问题

    提示的问题如下: error : argument of type "void *(*)(void *)" is incompatible with parameter of ty ...

  9. C#的接口基础教程之五 实现接口

    1.显式实现接口成员 为了实现接口,类可以定义显式接口成员执行体(Explicit interface member implementations).显式接口成员执行体可以是一个方法.一个属性.一个 ...

  10. vue学习之路 - 2.基本操作(上)

    基本操作(上) 本章节简介: vue的安装 vue实例创建 数据绑定渲染 表单数据双向绑定 事件处理 安装 安装方式有三种: 一.vue官网直接下载 http://vuejs.org/js/vue.m ...