安裝使用
? ? 1.全局安裝 npm install --global gulp
? ? 2.項目依賴?npm install --save-dev gulp
? ? 3.在項目根目錄下創(chuàng)建一個名為?gulpfile.js?的文件:
? ??????var gulp = require('gulp');
????????gulp.task('default', function(){
? ? ? ? ?// 將你的默認的任務(wù)代碼放在這});
? ? 4.運行g(shù)ulp,文件中的default任務(wù)會被執(zhí)行沾谓,單獨指定任務(wù)?gulp <task> <othertask>
API
gulp.src(globs[,options])? ? ?gulp.src('client/templates/*.jade')? ??
????輸出符合提供的匹配模式心墅,或者匹配模式數(shù)組的文件鸦采,將返回一個?Vinyl files?的?stream?它可以被?piped?到別的插件中届案。
參數(shù)說明?
????globs?所要讀取的 glob 或者包含 globs 的數(shù)組偎快。
????options?通過?glob-stream?所傳遞給?node-glob?的參數(shù)萤厅。除了?node-glob?和?glob-stream?所支持的參數(shù)外目代,gulp 增加了一些額外的選項參數(shù):
????options.buffer? Boolean 默認true?如果該項被設(shè)置為?false,那么將會以 stream 方式返回?file.contents?而不是文件 buffer 的形式
? ??options.read? Boolean?默認值:?true? 如果該項被設(shè)置為?false栋猖, 那么?file.contents?會返回空值(null)净薛,也就是并不會去讀取文件。
options.base????String?默認值: 將會加在 glob 之前
node-golb語法?https://github.com/isaacs/node-glob
gulp.dest(path[, options])
gulp.src('./client/templates/*.jade').pipe(gulp.dest(path[, options]))????能被 pipe 進來蒲拉,并且將會寫文件肃拜。并且重新輸出(emits)所有數(shù)據(jù),因此你可以將它 pipe 到多個文件夾雌团。如果某文件夾不存在燃领,將會自動創(chuàng)建它。
參數(shù)說明?
path????String?or?Function????文件將被寫入的路徑(輸出目錄)锦援。也可以傳入一個函數(shù)猛蔽,在函數(shù)中返回相應(yīng)路徑,這個函數(shù)也可以由?vinyl 文件實例?來提供灵寺。
options.cwd????String?默認值:?process.cwd() 輸出目錄的?cwd?參數(shù)曼库,只在所給的輸出目錄是相對路徑時候有效。
options.mode????String?默認值:?0777????八進制權(quán)限字符略板,用以定義所有在輸出目錄中所創(chuàng)建的目錄的權(quán)限毁枯。
gulp.task(name[, deps], fn)
參數(shù)說明
name????任務(wù)的名字,如果你需要在命令行中運行你的某些任務(wù)叮称,那么种玛,請不要在名字中使用空格。
deps????Array????一個包含任務(wù)列表的數(shù)組瓤檐,這些任務(wù)會在你當前任務(wù)運行之前完成赂韵。
????gulp.task('mytask', ['array', 'of', 'task', 'names'], function() { 。挠蛉。祭示。});
注意:?你的任務(wù)是否在這些前置依賴的任務(wù)完成之前運行了?請一定要確保你所依賴的任務(wù)列表中的任務(wù)都使用了正確的異步執(zhí)行方式:使用一個 callback谴古,或者返回一個 promise 或 stream质涛。
gulp.watch(glob[, opts], tasks)
參數(shù)說明
glob????String?or?Array????一個 glob 字符串悄窃,或者一個包含多個 glob 字符串的數(shù)組,用來指定具體監(jiān)控哪些文件的變動蹂窖。
opts????Object????傳給?gaze?的參數(shù)轧抗。
tasks????Array????需要在文件變動后執(zhí)行的一個或者多個通過?gulp.task()?創(chuàng)建的 task 的名字
gulp.watch(glob[, opts, cb])
glob????String?or?Array????一個 glob 字符串,或者一個包含多個 glob 字符串的數(shù)組瞬测,用來指定具體監(jiān)控哪些文件的變動横媚。
opts????Object????傳給?gaze?的參數(shù)。
cb(event)? ? Function????每次變動需要執(zhí)行的 callback月趟。
gulp.watch('js/**/*.js', function(event){
? console.log('File ' + event.path + ' was ' + event.type + ', running tasks...');
});????
callback 會被傳入一個名為?event?的對象灯蝴。這個對象描述了所監(jiān)控到的變動:
event.type????String????發(fā)生的變動的類型:added,?changed?或者?deleted。
event.path????String????觸發(fā)了該事件的文件的路徑孝宗。