2014-09-24 133 views
0

我在我的gulpfile中有以下代码片段。gulp多次执行任务

gulp.task('static', function() { 
    return gulp.src(['./src/**', '!./src/js/**', '!./src/js/', '!./src/scss/', '!./src/scss/**']) 
     .pipe(gulp.dest(outputDir + '/')) 
}); 

gulp.task('watch', function() { 
    gulp.watch(['./src/**', '!./src/js/**', '!./src/js/', '!./src/scss/', '!./src/scss/**'], ['static']); 
}); 

gulp.task('dev', ['static']); 

gulp.task('default', ['watch', 'dev']); 

如果我运行gulp devgulp watchgulp static,一切工作正常。但是,如果我只运行gulp(默认值),它会执行static任务次。任何人都可以帮我解释为什么会发生这种情况?

P.S.传递给监视的路径是这样的,因为如果我不排斥作为单独路径的目录,它似乎由于某种原因复制了空目录jsscss

+0

'outputDir'的值是什么? – 2014-09-24 11:41:44

+0

根据所调用的任务是开发还是生产,它被设置为“build /”或“deploy /”。 – 2014-09-24 14:47:35

回答

0

可能因为你没有返回任务,而你需要它们asyc。

看到这个:Gulp.js task, return on src?

和文档(也挂在上方,张贴)https://github.com/gulpjs/gulp/blob/master/docs/API.md#async-task-support

此外,dev任务看起来是多余目前的形式 - 你不妨直接使用任务static,除非你打算捆绑更多的任务dev

+0

我在上面的例子中删除了很大一部分代码。 'dev'有几个依赖关系。还有一个错字,“静态”任务确实有回报。 – 2014-09-24 17:36:39

+0

'watch'是否也需要返回? – 2014-09-24 17:37:53