您不应该使用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