我已经动态创建了gulp任务,工作正常。但是通过将数组传递给gulp.series()
或gulp.parallel()
来执行任务并不起作用。
这是我想要做的简化版本:
var tasks = ['clean', 'build', 'images'];
gulp.task('main', gulp.series('init', tasks));
'init'
执行没有问题,但似乎tasks
被忽略了。
任何想法如何在gulp.series()
或gulp.parallel()
内使用taks数组?
更新: 我正在使用gulp 4.0.0-alpha.2
最终更新:因为我刚发现问题是,我的数组已异步生成。当我尝试我的任务时,它是空的,所以我没有收到任何错误消息。我的代码工作正常。
感谢您的帮助!
答案 0 :(得分:1)
看起来这些方法希望将多个任务作为参数传递,因此您可以对它们调用apply
并传递数组:
gulp.task('main', gulp.series.apply(gulp, ['clean', 'build', 'images']))
(免责声明:我自己没有对此进行测试)
*编辑*
好的,我知道你在做什么。您需要传递 字符串,函数或数组。你不能混合搭配。
所以你可能想做的是:
var tasks = ['clean', 'build', 'images'];
gulp.task('main', gulp.series(['init'].concat(tasks)));
或者,使用数组扩展运算符:
var tasks = ['clean', 'build', 'images'];
gulp.task('main', gulp.series(['init', ...tasks]));