我有一个大型构建,它由多个子项目组成,这些子项目都是由一组共享的共享脚本构建的。
假设我想这样做(还有其他模块定义了子项目的实际任务):
var apps = [...]; //list of configuration objects for sub-projects in question
function builds() {
var buildNames = apps.map(function (app) {
return "release-build-" + app.name;
});
return gulp.parallel(buildNames);
}
function tests() {
var testNames = apps.map(function (app) {
return "test-" + app.name;
});
return gulp.series(testNames);
}
gulp.task("test", tests);
gulp.task("release-build", gulp.series(tests, builds));在gulp 3中,我执行以下操作( release-build任务的代码遵循与测试相同的模式):
var runSequence = require("run-sequence").use(gulp);
gulp.task("test", function (callback) {
// Get the test tasks of all children
var tasks = apps.map(function(app) {
return "test-" + app.name;
});
tasks.push(callback);
//run tasks sequentially
return runSequence.apply(null, tasks);
}); 然而,当我尝试运行新的GUP4版本时,我会感到恐惧:
以下任务未完成“测试” 你忘了发出异步完成信号了吗?
我如何建立我的任务名称,并将它们传递给gulp.series()或gulp.parallel(),就像我在run-sequence中所做的那样
发布于 2016-08-23 06:06:55
builds和tests函数生成gulp.parallel()和gulp.series()任务组合。您要做的是将分配给生成的任务组合作为test和release-build任务。
您当前要做的是将builds和tests函数(本身)指定为您的任务,而不是它们的返回值。
您需要实际调用builds和tests函数。所以,不是这样的:
gulp.task("test", tests);
gulp.task("release-build", gulp.series(tests, builds));你需要这样做:
gulp.task("test", tests());
gulp.task("release-build", gulp.series(tests(), builds()));https://stackoverflow.com/questions/39090709
复制相似问题