我刚刚读到,如果流使用'data'或'end'侦听器,它会切换到“经典”模式,溪流手册说:
请注意,每当您注册“数据”侦听器时,您都会将流放入可压缩模式,这样就失去了新的streams2 api的好处。
那么使用新的streams的最佳方法是什么呢?如果我现在这么做
gulp.src(["./src/server/**/*.coffee"])
.pipe(coffee bare: true ).on("error", gutil.log)
.pipe(gulp.dest "./bin/server")
.on 'end',-> gutil.log "successfully compiled server coffeescript"如何在不注册'end'侦听器的情况下执行相同的操作?
发布于 2014-06-23 22:58:33
只有调用.resume()/.pause()或添加“数据”侦听器才能将streams2流切换到streams1流。你可以在不影响任何事情的情况下听“结束”。
在您的特定示例中,即使它确实切换了,也不会影响您,因为您只是在管道上工作,这在streams1和streams2模式下都能工作。
此外,如果最后一个流(gulp.dest "./bin/server")不是双工流,或者您不使用它的数据,您可能不会看到'end‘事件。如果它只是一个可写的流,您应该监听'finish‘而不是’end‘('end’只在可读的流上发出)。
https://stackoverflow.com/questions/24375814
复制相似问题