以编程方式运行Gulp 4任务

Est*_*ask 9 node.js gulp gulp-4

gulp.taskgulpfile.js中定义了几个任务.我想以编程方式启动其中一个.最好是在同一个进程中(没有exec等),因为其背后的原因之一是能够在调试器中运行脚本.

如何才能做到这一点?

它看起来像有东西像gulp.rungulp.start,但他们在咕嘟咕嘟4弃用.

Est*_*ask 12

看来可以使用gulp.taskgetter函数检索任务并直接调用:

gulp.task('sync-task')();
gulp.task('async-or-random-task')(function callbackForAsyncTasks(err) {
  if (err)
    console.error('error', err);
});
Run Code Online (Sandbox Code Playgroud)


tuc*_*182 9

添加到接受的答案:

是的,您可以通过调用 来检索任务gulp.task,但不是直接调用它,而是可以将其包装在调用中gulp.series(大概gulp.parallel也可以工作)并调用。这有利于产生预期的“开始/完成”输出。一个例子是:

gulp.series(gulp.task('some-task'))();
Run Code Online (Sandbox Code Playgroud)

输出:

[09:18:32] Starting 'some-task'...
[09:18:32] Finished 'some-task' after 7.96 ms
Run Code Online (Sandbox Code Playgroud)

这是刚刚在 gulp v4.0.2 上测试过的。