管道内的条件任务信息太多(如“gulp-if”插件),但实际上它不是“条件任务”:这是“条件插件使用”,一个任务可以使用多个插件。2下面是如何有条件地运行任务,而不是在管道内(例如,在gulp.paralell()
内)
假设任务名称可以包含空格,以提供易于理解的任务含义。
gulp.task('Build', gulp.paralell(
'Preprocess HTML',
'Prepeocess styles',
done => {
if(checkSomeCondition()){
runTask('some Task') // but how?
}
else {
done();
}
}
))
4条答案
按热度按时间eqzww0vc1#
gulp4.0的美妙之处在于你的任务可以只是函数,所以下面的代码是有效的:
您可以使用上述版本(“旧方法”)或下面的新方法。
我在这里展示了两个使用两个版本的任务,但我个人不会将它们混合使用。
xfb7svmp2#
对于gulp 4,首先创建以下辅助函数:
gulp.parallel()
或gulp.series()
作为参数接受的相同值,即字符串、函数引用或来自另一个gulp.parallel()
或gulp.series()
的返回值。gulp.task()
,也可以作为gulp.parallel()
或gulp.series()
调用的参数传递给gulp.task()
。示例(第一个匹配问题):
nkhmeac63#
我有一个插件数组,在这里我做了一个简单的If查询,然后展开数组,见这里的第199行。
对于构建过程,我将Const更改为Let,并使用If查询它,您可以在此处看到。
rfbsl7qr4#
非常简单,不需要辅助函数:
线索是在最后一行调用函数-它将返回一个调整后的gulp。parallel task -我正在使用它来处理命令行参数(yargs)
**警告:**这将在执行第一个任务之前执行,并且在运行“生成”以外的其他任务时也将执行。在实现逻辑时请记住这一点;)