gulp如何自定義插件

gulp是基於」流「的構建工具,上層流的輸出就是下層流的輸入,爲了更好的支持鏈式操做,可使用through2或者map-stream這兩個庫來對node stream作一層包裝javascript

這裏,咱們就使用through2來定義一個簡單的gulp插件示例:doSomething.jshtml

'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);
};

接下來,在調用的地方,就這麼簡單:java

var doSomething = require('./doSomething.js');//假設模塊存放路徑在當前文件夾下
gulp.src("./app.js")
  .pipe(uglify())//調用其它插件
  .pipe(doSomething())//調用咱們剛剛定義的插件
  .pipe(gulp.dest('./myStream.js'));//持久化到磁盤

PS:雖然自定義插件就這麼簡單,但實際上你須要瞭解Node Stream的API和gulp的工做原理,才能更深入的理解整個過程當中到底發生了些什麼。node

 

尊重他人原創,轉載請務必註明來自http://www.cnblogs.com/Raoh/p/4169426.htmlgulp

相關文章
相關標籤/搜索