gulp - 如何在管道中运行并让下一个管道等待?

时间:2016-04-02 16:17:42

标签: javascript node.js gulp

假设我有一个gulp任务,例如:

gulp.src('bla-bla')
  .pipe(smth())
  .pipe(epic()) // I want to run gulp task here and wait for its end
  .pipe(livereload());

我希望在smth()完成后运行gulp任务,并且我想确保在插入的gulp任务完成后livereload()完全启动。我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

目前,您最好的选择可能是run-sequencehttps://github.com/OverZealous/run-sequence

据说Gulp直接在4.0中集成了这个功能,但是现在你可以使用runSequence来实现同样的功能。

在您的问题中:

gulp.task('one', function() {
  return gulp.src('bla-bla')
    .pipe(smth())
    .pipe(epic())
})

gulp.task('two', function() {
  return livereload.reload()
})

gulp.task('runboth', function() {
  runSequence('one', 'two')
});

您可能需要根据.reload()返回的内容进行回调。见https://github.com/OverZealous/run-sequence#usage