2014-09-24 185 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