安裝使用
? ? 1.全局安裝 npm install --global gulp
? ? 2.項目依賴?npm install --save-dev gulp
? ? 3.在項目根目錄下創建一個名為?gulpfile.js?的文件:
? ??????var gulp = require('gulp');
????????gulp.task('default', function(){
? ? ? ? ?// 將你的默認的任務代碼放在這});
? ? 4.運行gulp,文件中的default任務會被執行,單獨指定任務?gulp <task> <othertask>
API
gulp.src(globs[,options])? ? ?gulp.src('client/templates/*.jade')? ??
????輸出符合提供的匹配模式,或者匹配模式數組的文件,將返回一個?Vinyl files?的?stream?它可以被?piped?到別的插件中。
參數說明?
????globs?所要讀取的 glob 或者包含 globs 的數組。
????options?通過?glob-stream?所傳遞給?node-glob?的參數。除了?node-glob?和?glob-stream?所支持的參數外,gulp 增加了一些額外的選項參數:
????options.buffer? Boolean 默認true?如果該項被設置為?false,那么將會以 stream 方式返回?file.contents?而不是文件 buffer 的形式
? ??options.read? Boolean?默認值:?true? 如果該項被設置為?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)所有數據,因此你可以將它 pipe 到多個文件夾。如果某文件夾不存在,將會自動創建它。
參數說明?
path????String?or?Function????文件將被寫入的路徑(輸出目錄)。也可以傳入一個函數,在函數中返回相應路徑,這個函數也可以由?vinyl 文件實例?來提供。
options.cwd????String?默認值:?process.cwd() 輸出目錄的?cwd?參數,只在所給的輸出目錄是相對路徑時候有效。
options.mode????String?默認值:?0777????八進制權限字符,用以定義所有在輸出目錄中所創建的目錄的權限。
gulp.task(name[, deps], fn)
參數說明
name????任務的名字,如果你需要在命令行中運行你的某些任務,那么,請不要在名字中使用空格。
deps????Array????一個包含任務列表的數組,這些任務會在你當前任務運行之前完成。
????gulp.task('mytask', ['array', 'of', 'task', 'names'], function() { 。。。});
注意:?你的任務是否在這些前置依賴的任務完成之前運行了?請一定要確保你所依賴的任務列表中的任務都使用了正確的異步執行方式:使用一個 callback,或者返回一個 promise 或 stream。
gulp.watch(glob[, opts], tasks)
參數說明
glob????String?or?Array????一個 glob 字符串,或者一個包含多個 glob 字符串的數組,用來指定具體監控哪些文件的變動。
opts????Object????傳給?gaze?的參數。
tasks????Array????需要在文件變動后執行的一個或者多個通過?gulp.task()?創建的 task 的名字
gulp.watch(glob[, opts, cb])
glob????String?or?Array????一個 glob 字符串,或者一個包含多個 glob 字符串的數組,用來指定具體監控哪些文件的變動。
opts????Object????傳給?gaze?的參數。
cb(event)? ? Function????每次變動需要執行的 callback。
gulp.watch('js/**/*.js', function(event){
? console.log('File ' + event.path + ' was ' + event.type + ', running tasks...');
});????
callback 會被傳入一個名為?event?的對象。這個對象描述了所監控到的變動:
event.type????String????發生的變動的類型:added,?changed?或者?deleted。
event.path????String????觸發了該事件的文件的路徑。