上一篇文章我們對 Stream 的特性及其接口進行了介紹,gulp 之所以在性能上好于 grunt,主要是因為有了 Stream 助力來做數(shù)據(jù)的傳輸和處理。

那么我們不難猜想出,在 gulp 的任務中,gulp.src 接口將匹配到的文件轉(zhuǎn)化為可讀(或 Duplex/Transform)流,通過 .pipe 流經(jīng)各插件進行處理,最終推送給 gulp.dest 所生成的可寫(或 Duplex/Transform)流并生成文件。

本文將追蹤 gulp(v4.0)的源碼,對上述猜想進行驗證。

photoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網(wǎng)站設計培訓,網(wǎng)站建設培訓

為了分析源碼,我們打開 gulp 倉庫下的入口文件 index.js,可以很直觀地發(fā)現(xiàn),幾個主要的 API 都是直接引用 vinyl-fs 模塊上暴露的接口的:

photoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網(wǎng)站設計培訓,網(wǎng)站建設培訓

var util = require('util');var Undertaker = require('undertaker&#