2016-10-28 42 views
-1

如果環境設置爲生產,我想設置我的默認任務以使用watch任務運行。我無法找到解決方案,使我的吞噬,如果有條件的工作在任務堆棧。這裏是我的代碼:Gulp - 任務內的條件任務

gulp.task('default', ['styles', 'scripts', 'video' ], function() { 
    gulpif(isProduction, gulp.task('watch')); 
}); 

回答

1

代替gulp.task('watch')使用gulp.start('watch')雖然你平時不希望從另一個調用任務的任務。更好的方法是創建一個函數並調用函數。

另外注意:gulp.start()方法將不再gulp4工作


更新:

下面是如何吞掉內使用功能的例子:

var someFile = require('./someFile.js'); 

gulp.task('my-custom-task', function() { 
    someFile.doSomething('foo', 'bar'); 
}); 

如果你的函數異步執行某些操作,它應該在最後調用一個回調函數,這樣gulp就可以知道它是什麼時候執行的ne:

var someFile = require('./someFile.js'); 

gulp.task('my-custom-task', function (callback) { 
    someFile.doSomething('foo', 'bar', callback); 
}); 
+0

謝謝!那麼我如何在gulp中調用特定的函數呢? – Malyo

+1

如果按照功能你的意思是吞嚥任務,上述方式將是這樣做的方式。否則,您可以創建一個常規的js函數並將其稱爲通常如何調用函數。爲此,要創建一個模擬吞嚥任務的函數,您只需創建一個js函數並在其中使用gulp函數來維護功能。總體而言,這是「標準」,因此您可以輕鬆轉換到gulp 4,並且可以更輕鬆地分離gulpfile.js。一旦我上電腦,我會更新我的答案 – CriCri