运行 Gulp 4 任务编程
Run Gulp 4 task programmatically
在gulpfile.js中用gulp.task
定义了几个任务:
gulp.task('sync-task', () => { ... });
gulp.task('async-task', cb => { ... });
我想以编程方式启动其中一个。最好在同一个进程中(没有 exec 等),因为这背后的原因之一是能够 运行 调试器中的脚本。
如何做到这一点?
看起来像 gulp.run
和 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('sync-task').unwrap()();
添加到已接受的答案中:
是的,您可以通过调用 gulp.task
来检索任务,但您可以将其包装在对 gulp.series
的调用中而不是直接调用它(大概 gulp.parallel
也可以)并且调用 that。这有利于产生预期的 "Starting/Finished" 输出。一个例子是:
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 上测试过。
在gulpfile.js中用gulp.task
定义了几个任务:
gulp.task('sync-task', () => { ... });
gulp.task('async-task', cb => { ... });
我想以编程方式启动其中一个。最好在同一个进程中(没有 exec 等),因为这背后的原因之一是能够 运行 调试器中的脚本。
如何做到这一点?
看起来像 gulp.run
和 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('sync-task').unwrap()();
添加到已接受的答案中:
是的,您可以通过调用 gulp.task
来检索任务,但您可以将其包装在对 gulp.series
的调用中而不是直接调用它(大概 gulp.parallel
也可以)并且调用 that。这有利于产生预期的 "Starting/Finished" 输出。一个例子是:
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 上测试过。