gulp.task
gulpfile.js 中定义了几个任务:
gulp.task('sync-task', () => { ... });
gulp.task('async-task', cb => { ... });
我想以编程方式启动其中一个。最好在同一个进程中(没有 exec 等),因为这背后的原因之一是能够在调试器中运行脚本。
如何才能做到这一点?
看起来有类似gulp.run
and的东西gulp.start
,但它们在 Gulp 4 中已被弃用。
似乎可以使用gulp.task
getter 函数检索任务并直接调用:
gulp.task('sync-task')();
gulp.task('async-or-random-task')(function callbackForAsyncTasks(err) {
if (err)
console.error('error', err);
});
添加到接受的答案:
是的,您可以通过调用来检索任务gulp.task
,但不是直接调用它,您可以将其包装在调用中gulp.series
(大概gulp.parallel
也可以)并调用. 这有利于产生预期的“开始/完成”输出。一个例子是:
gulp.series(gulp.task('some-task'))();
输出:
[09:18:32] Starting 'some-task'...
[09:18:32] Finished 'some-task' after 7.96 ms
这刚刚在 gulp v4.0.2 上进行了测试。
我可以通过这样做来运行任务:
gulp.task('sync-task').unwrap()();