从其他Gulp任务中获取Gulp任务?

时间:2014-12-30 18:26:36

标签: javascript build-process gulp

我有一个Gulp构建任务,由任何类似的构建任务组成:

gulp.task('build', ['build-html', 'build-css', 'build-js', 'build-images']);

我讨厌的事情是build任务在依赖关系完成之后才会运行:

Starting 'build-html'...
Finished 'build-html' after 1 s
Starting 'build-css'...
Finished 'build-css' after 1 s
Starting 'build-js'...
Finished 'build-js' after 1 s
Starting 'build-images'...
Finished 'build-images' after 1 s
Starting 'build'...
Finished 'build' after 1 ms

现在显然,build根本不应该运行,直到它的依赖关系完成,所以它按预期工作。但是这导致控制台说build只花了1毫秒,而实际上它应该说需要4秒,因为所有它的依赖都花了那么长时间。如果它看起来像这样会很好:

Starting 'build'...
Starting 'build-html'...
Finished 'build-html' after 1 s
Starting 'build-css'...
Finished 'build-css' after 1 s
Starting 'build-js'...
Finished 'build-js' after 1 s
Starting 'build-images'...
Finished 'build-images' after 1 s
Finished 'build' after 4 s

注意build是第一个“开始”的东西,然后运行所有依赖项,然后build完成。

所以我想知道,而不是使用任务依赖,我可以在build任务中一次调用一个任务吗?如果是这样,我用什么命令来做这个?

这是个坏主意吗?这个问题有更好的解决方案吗?

1 个答案:

答案 0 :(得分:1)

我猜你可以使用runSequence插件做你想做的事。

由于build任务的唯一目的是启动没有特定订单的所有build-*任务,因此可能如下所示:

var rs = require('run-sequence');

gulp.task('build', function (cb) {
  rs(['build-css', 'build-html', 'build-js', 'build-images'], cb);
});