zoukankan      html  css  js  c++  java
  • gulp如何自定义插件

    gulp是基于”流“的构建工具,上层流的输出就是下层流的输入,为了更好的支持链式操作,可以使用through2或者map-stream这两个库来对node stream做一层包装

    这里,我们就使用through2来定义一个简单的gulp插件示例:doSomething.js

    'use strict';
    var through = require('through2'),
    module.exports = function(opt) {
    
    	function doSomething(file, encoding, callback) {
    
    		if (file.isNull()) {
    			return callback(null, file);
    		}
    
    		if (file.isStream()) {
    			return callback(createError(file, 'Streaming not supported'));
    		}
             //do something
                   file.contents = new Buffer("this is my stream");//这里我们只是简单的改变了内容,实际上你可以你的自定义逻辑部分就在这里执行
    
    		callback(null, file);
    	}
    
    	return through.obj(doSomething);
    };

    接下来,在调用的地方,就这么简单:

    var doSomething = require('./doSomething.js');//假设模块存放路径在当前文件夹下
    gulp.src("./app.js")
      .pipe(uglify())//调用其它插件
      .pipe(doSomething())//调用我们刚刚定义的插件
      .pipe(gulp.dest('./myStream.js'));//持久化到磁盘
    

    PS:虽然自定义插件就这么简单,但实际上你需要了解Node Stream的API和gulp的工作原理,才能更深刻的理解整个过程中到底发生了些什么。

    尊重他人原创,转载请务必注明来自http://www.cnblogs.com/Raoh/p/4169426.html

    博客已搬迁新址:ovaldi.github.io
  • 相关阅读:
    获取AppSettings配置,获取连接字符串
    类在初始化的时候做了什么事
    Easyui Tabs 添加怎么添加。
    Tree数据格式 Easyui
    使用CodeFirst建表的时候要知道的特性
    从数据导出模型到pd设计器
    orm的几种排序写法
    Parallel.ForEach 并行循环的使用
    kendo gird 刷新数据源的几种方式
    表格设置宽度在ie9上无效
  • 原文地址:https://www.cnblogs.com/Raoh/p/4169426.html
Copyright © 2011-2022 走看看