如何在Gulp中观察多个目标?

时间:2015-06-23 10:25:14

标签: stream gulp browserify watchify

我使用browserify来监听将多个文件编译成多个目标,如此(使用this trick):

gulp.task('js', function () {
    var bundler = through2.obj(function (file, enc, next) {
        browserify(file.path).bundle(function(err, res) {
            file.contents = res;
            next(null, file);
        });
    });

    return gulp.src(['foo.js', 'bar.js'])
        .pipe(bundler)
        .pipe(uglify())
        // Other pipes
        .pipe(gulp.dest('./compiled'));
});

如何将这两种用法与watchify结合使用?关于使用乙烯基源流的常见建议对我不起作用。我想生成两个文件(编译/ foo.js和编译/ bar.js)。我不想将文件合并为一个。

1 个答案:

答案 0 :(得分:1)

我想出了如何结合通过2和观察。诀窍是在更新时调用var bundler = through.obj(function (file, enc, next) { var b = watchify(browserify(file.path)) b.on('update', function () { gutil.log('Updated', gutil.colors.magenta(file.path)); b.bundle(function (err, res) { file.contents = res; // Do not call next! }); b.on('log', gutil.log); } b.bundle(function (err, res) { file.contents = res; next(null, file); }); });

{{1}}