您不應該使用run
。這裏是一個替代(解決你的答案的一部分),而不是你需要做什麼:
gulp
.start('default')
.once('task_stop', function(){
//do other stuff.
});
如果你真的必須觸發一個特設的任務,但實際上可以使用運行...您可以使用.start
與任務名稱,並附加到task_stop
處理程序以在任務完成時觸發某些內容。編寫吞噬任務的測試時,這很好,但事實就是如此。但是在日常使用中,這是一個反模式。
通常情況下,您可以構建較小的任務並將其組合起來。這是正確的方法。看到這一點:
var gulp = require('gulp'),
runSequence = require('run-sequence');
function a(){
//gulpstuff
}
function b(){
//gulpstuff
}
function d(callback){
runSequence('a', 'b', callback)
}
gulp
.task('a', a) // gulp a -runs a
.task('b', b) // gulp b runs b
.task('c', ['a', 'b']) //gulp c runs a and b at the same time
.task('d', d); //gulp d runs a, then b.
基本上如果c或d是一個手錶的任務,你會獲得射擊已經註冊的小口喝相同的任務目標,而不.run
謝謝您的回答。我明白,當使用'gulp。手錶「,它可以像你的答案一樣完成。但我正在使用'gulp-watch'。我使用'gulp-watch'的原因是因爲'gulp.watch'不能監視新的或刪除的文件,因爲我的經驗和發現在這裏:http://stackoverflow.com/questions/22391527/gulps-gulp-watch-not -triggered-for-new-or-deleted-files那麼,我怎麼能不在這裏使用'gulp-watch'這個'gulp.run'? – user1995781 2015-03-03 12:44:38
雖然這打破了。它忽略了第一個依賴關係中的依賴關係。 – 2016-07-23 11:47:31