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. 【干货】JavaScript DOM编程艺术学习笔记7-9

    七.动态创建标记 在文档中不写占位图片和文字代码,在能调用js的情况下动态创建,文档支持性更好. 在原来的addLoadEvent prepareGallery showPic的基础上增加函数prep ...

  2. Maven建立spring-web项目

    参考博客网址: https://blog.csdn.net/caoxuekun/article/details/77336444 1.eclipse集成maven 2.maven创建web项目 3.搭 ...

  3. 飞塔NGFW-FortiGate-5.2(BYOL)

    平台: FortiGate 类型: 虚拟机镜像 软件包: basic software FortiGate ips security UTM vpn 反垃圾邮件 网页过滤 服务优惠价: 按服务商许可协 ...

  4. koa2实现文件上传服务

    使用方法 方法一: 使用中间介 koa-body 方法二: 自己写个借口去接收数据流并保存 方法三: 使用 koa-body 接受文件,自己写个接口做文件保存或处理等操作 这里简单记录方法三 app. ...

  5. tomcat服务器配置域名访问项目server.xml

    <?xml version='1.0' encoding='utf-8'?> <!-- Licensed to the Apache Software Foundation (ASF ...

  6. Android(java)学习笔记83:各种边距设置

    1. 各种边距设置: (1)android:layout_paddingLeft 内边距,对谁用,指的是谁的内部内容边距 (2)android:layout_marginLeft 外边距,对谁用,指的 ...

  7. Tarjan在图论中的应用(二)——用Tarjan来求割点与割边

    前言:\(Tarjan\) 求割点和割边建立在 \(Tarjan\)算法的基础之上,因此建议在看这篇博客之前先去学一学\(Tarjan\). 回顾\(Tarjan\)中各个数组的定义 首先,我们来回顾 ...

  8. Drupal7强制把主题恢复到默认主题

    今天在写Theme,退出登陆的时候无法进入管理后台. 万不得已之下只有使用数据库进行恢复. Rest Drupal Theme to Bartik SQL语句如下: WHERE type = 'the ...

  9. LigerUI的下拉框行和树的设置(表单生成)

    http://blog.csdn.net/dxnn520/article/details/8194767 // ---------------------- // [下拉树设置 -- 单选] {dis ...

  10. react组件间的传值方法

    关于react的几个网站: http://react.css88.com/ 小书:http://huziketang.mangojuice.top/books/react/ http://www.re ...