尝试学习https://github.com/jhades/angularjs-gulp-example/blob/master/gulpfile.js,我注意到,对于任务build
,存在依赖关系clean
。但是,对于大多数其他定义,clean
也被指定为依赖项!因此,如果我运行build
,它将运行clean
,但那么build-css
和build-template-cache
哪些都具有clean
依赖关系......等等...还为每个依赖项运行clean
?所以基本上运行一个命令gulp build
不止一次运行clean
...消除其他依赖项的输出....或者第一次显式满足时运行clean
其他依赖项的依赖关系并阻止clean
再次运行!
任何指针都将受到赞赏。
我不是在问什么是正确的清洁技术!我特别询问我发布的链接......以及IT如何处理clean
任务。
答案 0 :(得分:1)
Dependencies
只是说它必须至少运行一次。例如这段代码:
var gulp = require('gulp');
gulp.task('main', ['b', 'a'], function() {
return gulp;
});
gulp.task('a', ['b'], function() {
return gulp;
});
gulp.task('b', ['a'], function() {
return gulp;
});
将像这样运行:
main
a
b
不
main
a
b
a
b
无限重复。
但是,它可以很容易地按照main
,b
,然后a
的顺序运行。这是因为gulp
中的synchronous tasks。依赖项必须异步运行在任务之前,但它们一起或同步运行,这answer解释了同步和异步之间的区别。
为避免这种情况,您可以在Gulp 4
:
gulp.task('main', function() {
gulp.series('a', 'b');
});
这将始终按main
,a
,b
的顺序运行
但在此之下,您需要使用run-sequence
包。这是一个例子:
var runSequence = require('run-sequence');
gulp.task('main', function() {
runSequence('a', 'b');
})