2015-06-23 44 views
2

我使用browserify聽編譯多個文件到多個目標,就像這樣(用this trick):我如何看待Gulp中的多個目標?

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結合本through2使用情況如何?關於使用乙烯基源流的常見建議對我無效。我想生成兩個文件(編譯/ foo.js和編譯/ bar.js)。我不想將這些文件合併爲一個。

回答

1

我想出瞭如何結合through2和watchify。訣竅是不是更新時請致電next()

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