使用 through2 在我自己的 gulp 插件中应用另一个 gulp 插件

Apply another gulp plugin in my own gulp plugin using through2

我正在编写自己的 gulp 插件,看起来像这样...

var through2 = require('through2');
var order = require('gulp-order');

module.exports = function() {
    return through2.obj(function(file, encoding, callback) {
        callback(null, transform(file));
    });
};

function transform(file) {
    // I will modify file.contents here - its ok
    return file;
}

我想在我的缓冲区上应用一些来自 gulp.src 的其他 gulp 插件。可以使用 through2 吗?例如,在调用 through2.obj() 之前,我想应用 gulp-order 插件 - 我该怎么做?

如果您想将不同的 gulp 插件链接在一起 lazypipe 通常是不错的选择:

var through2 = require('through2');
var order = require('gulp-order');

function yourPlugin()
    return through2.obj(function(file, encoding, callback) {
        callback(null, transform(file));
    });
}

function transform(file) {
    // I will modify file.contents here - its ok
    return file;
}

function orderPlugin()
    return order(['someFolder/*.js', 'someOtherFolder/*.js']);
}

module.exports = function() {
   return lazypipe().pipe(orderPlugin).pipe(yourPlugin)();
};