2016-07-15 62 views
22

我对饮酒相对来说比较陌生,我想知道.pipe()在吞咽任务中究竟做了什么?我已经收集到它通常在return之后和.src之后运行,但是除此之外肯定还有更多。我一直无法在网上或在gulp的文档中找到任何东西,我真的很想了解我在使用什么。.pipe()是什么意思在吞咽?

编辑 我发现this,但它确实说明它

+0

Gulp.js利用管道传输需要处理的数据。它为我设置任务的语法非常简单。如果您还没有理解如何使用Gulp的概念,那么API文档就不会阅读,只是将开发人员引用到某种方法以及如何使用它。 –

+0

我有一个图像,Gulp .pipe()函数实际上是一个承诺。是吗? – Abdillah

回答

19

从节点文档方面做得很差:

https://nodejs.org/api/stream.html#stream_readable_pipe_destination_options

的readable.pipe()方法附加一个写流到可读,使其自动切换到流动模式,并将其所有数据推送到附加的Writable。数据流将自动进行管理,以便目标可写入流不会被更快的可读流覆盖。

因此,在Gulp中,您可以使用pipe()方法将多个任务链接在一起。 Gulp利用流。有可读和可写的流。以下面的代码段,例如:

gulp.src(config.jsSrc) 
    .pipe(uglify()) 
    .pipe(gulp.dest(config.dest + '/js')) 
    .pipe(size()); 

gulp.src(...)轮流在config.jsSrc路径成数据的可读流,我们然后输送至所述gulp-uglify模块。 uglify任务返回一个流,然后我们通过管道传输到我们的目的地,等等......