如何在一个gulp任务中运行多个操作?以下情况并不起作用,因为事情似乎无法正常运行并导致各种奇怪的错误。我在How to perform multiple gulp commands in one task中尝试了event-stream
merge
,但这似乎与del无关。
我知道我可以将它分成多个任务并使用run-sequence
插件,但是在链接的问题中,我不想让我的Gulpfile膨胀,这些任务永远不会单独运行而且不会# 39;在特定背景之外有意义。
gulp.task('task', function() {
del('....');
gulp.src('....')
.pipe(gulp.dest('....'));
gulp.src('....')
.pipe(gulp.dest('....'));
});
答案 0 :(得分:3)
您需要将流分配到变量中,然后与es.merge
一起运行(如果您不需要所有事件流,则可以使用merge-stream)。至于使用del
运行,请查看设置执行清理操作的从属任务:
https://github.com/gulpjs/gulp/blob/master/docs/recipes/delete-files-folder.md
gulp.task('clean', function (cb) {
del([
'dist/report.csv',
// here we use a globbing pattern to match everything inside the `mobile` folder
'dist/mobile/**',
// we don't want to clean this file though so we negate the pattern
'!dist/mobile/deploy.json'
], cb);
});
然后您可以像这样定义其他任务:
var merge = require('merge-stream');
gulp.task('task', ['clean'], function () {
var someOperation = gulp.src('./').pipe(gulp.dest('out'));
var someOtherOperation = gulp.src('./assets').pipe(gulp.dest('out/assets'));
return merge(someOperation, someOtherOperation);
});
这将首先执行清理,等待完成,然后执行其他操作。