Gulp-debug修复了流

时间:2014-07-22 15:36:16

标签: gulp

我得到的任务永远不会完成。它打印开始消息,但不打印完成消息。但是,如果我将流传输到gulp-debug,它已经修复,现在神奇地工作了。流有什么问题吗?

gulp.task('copy-src-mobile',function(){

  return merge(
    gulp.src('./Web/app/**')
      .pipe(replace(/\/app\//g,'app\/'))
      .pipe(replace(trunacteAbsoluteUrlRegex,'$1=$2'))
      .pipe(gulp.dest(deployTo + 'app'))
    ,gulp.src('Web/js/**').pipe(gulp.dest(deployTo+'js'))
    ,gulp.src('Web/fonts/**').pipe(gulp.dest(deployTo+'fonts'))
    ,gulp.src('Web/img/**').pipe(gulp.dest(deployTo+'img'))
    ,gulp.src('Web/css/**.css').pipe(gulp.dest(deployTo+'css'))
  )
  .pipe(debug({verbose: false})) //If I comment this out, the task never finishes
  ;
});

1 个答案:

答案 0 :(得分:3)

由于您从任务中返回一个流(merge的结果),Gulp会等待此流被耗尽。但是看看你的Gulp任务,没有人从合并流中读取,所以它永远不会结束,因此你的任务永远不会完成。添加debug会有所帮助,因为我猜它会消耗流。

这在Gulp中使用流是不明显的一部分,但在orchestrator中使用此提交会更好:https://github.com/orchestrator/orchestrator/commit/1d9926dc28087ae5de5fdd904ae6111966cb4ea6。不知道什么时候这个将成为官方Gulp发布的一部分,所以现在你可以做其中任何一个:

  • 不使用流合并并将当前合并的每个管道放入单独的gulp任务中
  • 排空合并的流

编辑:实际上看起来gulp依赖于指定为^0.3.0的Orchestrator,所以只更新你的npm依赖项可能会解决问题。