nvi*_*oli 3 javascript synchronous gulp
我有两个文件集,让我们称他们base和mods.该mods文件覆盖base文件,所以当我运行相关一口任务base,我需要运行mods后直接任务.我的设置是这样的:
gulp.task('base',function(){
return gulp.src('base-glob')
.pipe(...)
.pipe(gulp.dest('out-glob'))
});
gulp.task('mods',function(){
return gulp.src('mods-glob')
.pipe(...)
.pipe(gulp.dest('out-glob'))
});
Run Code Online (Sandbox Code Playgroud)
所以我想mods在完成任务时运行base任务.请注意,这与定义base为依赖关系不同mods,因为如果我只更改mods文件,我只需要运行mods任务.我不想使用插件.
我一直在阅读有关回调函数和同步任务的其他建议的文档,但似乎无法理解它.
我知道你不想使用插件,但gulp无法在没有插件的情况下按顺序运行一系列任务.Gulp 4会,但与此同时,权宜之计解决方案是运行序列插件.
gulp.task('all', function() {
runSequence('base', 'mods');
});
Run Code Online (Sandbox Code Playgroud)
这可确保任务按顺序运行,而不是无序依赖.
现在设置一个手表:
gulp.task('watch', function() {
gulp.watch('base-glob', ['all']);
gulp.watch('mods-glob', ['mods']);
});
Run Code Online (Sandbox Code Playgroud)
每当base-glob更改时,gulp将运行all任务,base然后运行序列mods.
每当mods-glob改变时,gulp将只运行mods任务.
听起来不对劲?