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
  • 相关阅读:
    Css几个兼容性问题
    一些常用的正则表达式
    超链接hover切换效果
    读取根目录src下的指定配置properties文件内容
    SQL Server查询表结构语句
    单独使用ibatis做事物控制。
    ibatis调用存储过程(无返回参数)
    oracle split函数
    Jquery调用Ajax实现联动使用json
    简单分页插件
  • 原文地址:https://www.cnblogs.com/Raoh/p/4169426.html
Copyright © 2011-2022 走看看