我想分享一组描述当前执行流程的参数。这就是我现在这样做的方式:
let taskError;
gulp.task('pre-watch', () => {
taskError = false;
});
gulp.task('task-a', () => {
console.log('OK');
});
gulp.task('task-b', () => {
console.log('Error');
taskError = true;
});
gulp.task('task-c', () => {
console.log('Error', taskError);
if (!taskError) {
throw new Error('Was expecting taskError to be true.');
}
});
gulp.task('watch', () => {
gulp.watch('./**/*', [
'pre-watch',
'task-a',
'task-b',
'task-c'
]);
});
这种方法很有效,直到我们遇到并行问题,即
gulp.watch
检测到了更改。pre-watch
已完成,task-a
已完成,task-b
已完成... gulp.watch
检测到了更改。pre-watch
重置taskError
。task-c
抛出Error
。有没有办法在当前任务执行流程中传递参数?
答案 0 :(得分:0)
正如你发现的那样,gulp任务默认并行运行。 有史以来最好的gulp插件是run-sequence
npm i -SD run-sequence
https://www.npmjs.com/package/run-sequence
非常受欢迎,每天下载4k +。它是一个临时解决方案,直到gulp 4被释放,这将更好地控制并行性。
它允许你做...
'任务1', ['task2','task3'], 'task4'
那是......
运行任务1
然后并行运行任务2和任务3
当2和3都完成后再运行任务4
这可以解决您的并行问题:)
不确定这是分享参数的最佳方式。