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
  • 相关阅读:
    linux日常管理-screen
    linux日常管理-xarge_exec
    linux日常管理-linux日志
    linux日常管理-系统服务
    linux命令-任务计划-cron
    linux日常管理-防火墙netfilter工具-iptables-3
    linux日常管理-防火墙netfilter工具-iptables-2
    开启80端口
    linux日常管理-防火墙netfilter工具-iptables-1
    随机4位验证码
  • 原文地址:https://www.cnblogs.com/Raoh/p/4169426.html
Copyright © 2011-2022 走看看