如何在 gulp 4 中使用 gulp.series?

use*_*703 2 gulp gulp-4

有一个超级简单的 gulp 文件,我想在其中依次运行一些基本的 gulp 任务。

我似乎无法在 Gulp v4 中运行它。在 Gulp v3 中有类似的东西,使用run-sequence而不是gulp.series()

const gulp = require("gulp");
const clean = require('gulp-clean');

gulp.task('clean-app', async () => {
  return (gulp.src('./dist/app', {read: true, allowEmpty: true})
    .pipe(clean()));
});


gulp.task('clean-tests', async () => {
  return ( gulp.src('./dist/tests', {read: true, allowEmpty: true})
    .pipe(clean()));
});

gulp.task('all-tasks', gulp.series('clean-app', 'clean-tests'));
Run Code Online (Sandbox Code Playgroud)

各个 gulp 任务clean-appclean-tests单独运行良好。

但是,当我使用时gulp all-tasks出现以下错误

gulp all-tasks
[17:50:51] Using gulpfile ~\IdeaProjects\my-app\gulpfile.js
[17:50:51] Starting 'all-tasks'...
[17:50:51] Starting 'clean-app'...
[17:50:51] Finished 'clean-app' after 10 ms
[17:50:51] The following tasks did not complete: all-tasks
[17:50:51] Did you forget to signal async completion?
Run Code Online (Sandbox Code Playgroud)

我认为两者clean-appclean-tests返回流就足够了。

已尝试使用gulp4-run-sequence 但出现相同的错误。

希望能够在成功完成后执行gulp all-tasks这样的运行。clean-testsclean-app

Moh*_*nji 5

根据此处的cb()官方文档尝试在您的任务中运行

const gulp = require("gulp");
const clean = require('gulp-clean');

gulp.task('clean-app', (cb) => {
  gulp.src('./dist/app', {read: true, allowEmpty: true}).pipe(clean());
  cb();
});

gulp.task('clean-tests', (cb) => {
  gulp.src('./dist/tests', {read: true, allowEmpty: true}).pipe(clean());
  cb();
});

gulp.task('all-tasks', gulp.series('clean-app', 'clean-tests'));
Run Code Online (Sandbox Code Playgroud)