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

Как я могу совмещать это использование through2 с watchify? Общий совет об использовании винилового источника-потока не работает для меня. Я хочу сгенерировать два файла (скомпилированные/foo.js и скомпилированные/bar.js). Я не хочу объединять файлы в один.

ответ

1

Я понял, как объединить через2 и следить. Фокус в не звонок 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); 
    }); 
});