2016-07-15 41 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任務返回一個流,然後我們通過管道傳輸到我們的目的地,等等......