npm install --save-dev 写入package.json里
 
 
var gulp = require('gulp');
var less = require('gulp-less');//less解析
var minifycss = require('gulp-minify-css');//css压缩
var uglify = require('gulp-uglify');js压缩
 
 
使用方法:
 
gulp.task('less', function() {
gulp.src('./css/*.css')//压缩的文件
.pipe(less())//执行压缩
.pipe(gulp.dest('./css'));//输出文件夹
});
....
//watch监听任务
gulp.task('watch', function(){
gulp.watch('./css/*.css',['less'] )//gulp的watch监听,文件改动后立即重新执行less任务
})
 
 
gulp.task('default', ['less',...]);//执行以上方法
 
 
单独介绍:
var combiner = require('stream-combiner2');//监控合并时候文件本身的错误
 
默认情况下,在 stream 中发生一个错误的话,它会被直接抛出,除非已经有一个时间监听器监听着 error 时间。 这在处理一个比较长的管道操作的时候会显得比较棘手。
 
gulp.task('test',function(){
//流合并监听的方式 (故意写错了js,能够监听到错误处在哪个文件,和错误的具体位置)
var combined = combiner.obj([
gulp.src('js/*.js'),
uglify(),
gulp.dest('dst/js')
]);
 
combined.on('error',console.error.bind(console));
return combined;
 
});
 
gulp.task('default', ['test']);
 
它会把错误的信息、文件名、行数、列数·、位置、是执行哪个插件出现的错误,错误文件的路径,错误时间等等详细的信息都列出来。
 
 
 
不仅如此,大家有没有发现一个小细节,就是使用了stream-combiner2的方式,在执行uglify的时候没有通过管道。
 
这里我也很奇怪,gulp不是通过binary pipe方式执行的么,这里为什么不需要通过管道了呢?
 
 
看了github上的文档才知道,它会把pipe管道转换成stream流的形式。
 
 
这样的话,每次都使用stream-combiner2的方式,用combiner.obj([执行内容]);的方式,就不用每一个步骤都建立管道再走管道了,感觉瞬间很方便,有木有
 
 
 
 
 
 
 
 
 
 
 
 
 
 

gulp简单使用小记的更多相关文章

  1. 基于流的自动化构建工具------gulp (简单配置)

    项目上线也有一阵子,回头过来看了看从最初的项目配置到开发的过程,总有些感慨,疲软期,正好花点时间,看看最初的配置情况 随着前端的发展,前端工程化慢慢成为业内的主流方式,项目开发的各种构建工具,也出现了 ...

  2. 前端自动化构建工具Gulp简单入门

    昨天听同事分享了Gulp的一些简单使用,决定自己也试一试. 一.安装 gulp是基于nodejs的,所以要先下载安装node(直接搜node,在官网下载就好了) 1.全局安装gulp npm inst ...

  3. Realm简单使用小记

    一.项目环境:纯OC 载入Realm: pod 'Realm' 二.为了方便调用可以写一个Realm类的分类 #import <Foundation/Foundation.h> #impo ...

  4. Gulp 简单的开发环境搭建

    //获取gulp //require()是 node (CommonJS)中获取模块的语法 var gulp=require('gulp'); //获取gulp-concat模块(用于合并文件):np ...

  5. 自动化构建工具gulp简单介绍及使用

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

  6. vue + webpack + gulp 简单环境 搭建

    一.物料准备 废话不多说,直接上 package.json { "name": "vwp", "version": "1.0.0& ...

  7. Gulp简单应用

    1.创建一个工程,在webstorm控制台   cnpm install --save-dev gulp      cnpm install --save-dev gulp-concat        ...

  8. gulp简单使用

    1.安装gulp,由于某些在下不能解决的原因,故使用gulp 3.9.1版本 安装命令: npm install gulp@3.9.1 注意不要直接使用 : npm install gulp 安装,直 ...

  9. MagicalRecord简单使用小记

    一般采用pod安装,导入框架 #import <CoreData+MagicalRecord.h> - (BOOL)application:(UIApplication *)applica ...

随机推荐

  1. wordpress参考网站

    wordpress大学http://www.wpdaxue.com/post-tags-and-categories-for-pages.html

  2. 这是一个hibernate 联合主键的例子

    package com.bird.entity; import java.io.Serializable; import javax.persistence.Entity; import javax. ...

  3. poj 1149 PIGS_网络流

    #include<iostream> #include<queue> #include<cstdio> #include<cstring> using ...

  4. ToString()使用方法

    1.数字转换到字符串格式说明符说明示例输出C货币2.5.ToString("C")¥2.50D十进制数25.ToString("D5")00025E科学型250 ...

  5. MAC中在eclipse luna上搭建移动平台自己主动化測试框架(UIAutomator/Appium/Robotium/MonkeyRunner)关键点记录

    这几天由于原来在用的hp laptop的电池坏掉了,机器一不小心就断电.所以仅仅能花时间在自己的mackbook pro上又一次搭建整套环境.大家都知道搭建好开发环境是个非常琐碎须要耐心的事情,特别是 ...

  6. Sequence one(hdu2610dfs+去重)

    题目:有一个数列N,和一个数字k,输出该数列的前k个子序列,如果k大于N的所有子序列,输出所有符合要求的序列,序列要求不能是递减序列 比如: 3 5 1 3 2 的前五个序列为 1 3 2 1 3 1 ...

  7. hdu2222Keywords Search

    Problem Description In the modern time, Search engine came into the life of everybody like Google, B ...

  8. 屏蔽错误:LNK2038

    最近在使用Qt(VS2010编译)的过程中,需要调用COM库,在Qt中加入了QAxContainer模块,是一个LIB库,在把编译模式从Debug改为Release 后链接报告了一堆错误 -1: 错误 ...

  9. zoj1093 Monkey and Banana

    写到现在,发现1025,1076之前写的都是同一种题型:关于DAG的最长路(最短路). 首先要建立模型,根据关系,确定点和点之间的关系,构成一个DAG,前面几道题每个点之间距离默认为1,这一道题不同点 ...

  10. Python基础:绑定和方法调用

    首先,方法仅仅是类内部定义的函数,也就是说,方法是类属性而不是实例属性. 其次方法有两种被调用的方式:调用绑定的方法和调用未绑定的方法. 当存在一个实例时,方法才被认为绑定到了那个实例上,没有实例时方 ...