Gulp
暴露了 src()
和 dest()
方法,用於處理計算機上存放的文件。gulp
其中 src()
方法接受一個 glob
參數,從文件系統中讀取文件,而後生成一個 Node 流。它將全部匹配的文件讀取到內存中並經過流進行處理。babel
由 src()
方法產生的流應當從任務中返回併發出異步完成的信號,就如 建立任務文檔中所述。併發
const { src, dest } = require('gulp'); exports.default = function() { return src('src/*.js') .pipe(dest('output/')); }
流提供的主要的 API
是用於連接轉換或者是可寫流的 .pipe()
方法。異步
const { src, dest } = require('gulp'); const babel = require('gulp-babel'); exports.default = function() { return src('src/*.js') .pipe(babel()) .pipe(dest('output/')); }
dest()
接受一個輸出目錄做爲參數,而且它還會產生一個 Node
流,一般做爲終止流。當它接收經過管道傳遞的文件時,它將文件內容和其餘細節寫入給定目錄中。gulp
還提供了 symlink()
方法,它的操做方式與dest()
相似,但會建立連接而不是文件。ui
大多數狀況下,插件將使用.pipe()
方法放置在 src()
和 dest()
之間,並將轉換流中的文件。插件
src()
方法能夠放在管道的中間,根據給定的 glob
向流中添加文件,新加入的文件只會對後續的轉換可用,若是 glob
匹配的文件與以前的有重複,它仍然會再次添加文件。code
const { src, dest } = require('gulp'); const babel = require('gulp-babel'); const uglify = require('gulp-uglify'); exports.default = function() { return src('src/*.js') .pipe(babel()) .pipe(src('vendor/*.js')) .pipe(uglify()) .pipe(dest('output/')); }
dest()
方法能夠用在管道中間用於將文件的中間狀態寫入文件系統,當接收到一個文件時,當前狀態的文件將會被寫入文件系統,文件路徑也將會被修改從而來反映出輸出文件的新位置,而後該文件繼續沿着管道傳輸。ip
const { src, dest } = require('gulp'); const babel = require('gulp-babel'); const uglify = require('gulp-uglify'); const rename = require('gulp-rename'); exports.default = function() { return src('src/*.js') .pipe(babel()) .pipe(src('vendor/*.js')) .pipe(dest('output/')) .pipe(uglify()) .pipe(rename({ extname: '.min.js' })) .pipe(dest('output/')); }
上面三種模式均可以經過對 src()
方法的 buffer
和 read
參數進行設置。內存