Как использовать gulp.series в gulp 4?

У меня есть супер простой файл gulp, в котором я хочу запускать некоторые основные задачи gulp последовательно одну за другой.

Кажется, я не могу запустить это в Gulp v4. Было что-то похожее в Gulp v3 с использованием последовательность выполнения вместо 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'));

Отдельные задачи gulp clean-app и clean-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?

И clean-app, и clean-tests возвращают потоки, которых, как мне показалось, будет достаточно.

Пробовал использовать gulp4-run-последовательность, но получаю ту же ошибку.

Хотите иметь возможность запускать gulp all-tasks так, чтобы clean-tests выполнялось после успешного завершения clean-app.

Какая у тебя all-tasks задача?

TheDancingCode 29.04.2019 19:22

Я обновил пример кода, указав правильное имя задачи. Задача all-tasks при запуске выдает показанную ошибку

user805703 29.04.2019 22:24
Настройка шаблона Metronic с помощью Webpack и Gulp
Настройка шаблона Metronic с помощью Webpack и Gulp
Я пишу эту статью, чтобы поделиться тем, как настроить макет Metronic с помощью Sass, поскольку Metronic предоставляет так много документации, и они...
2
2
6 432
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

судя по официальным документам здесь попробуйте запускать 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'));

пытался использовать этот @mohammad-altenji, но все равно выдает ту же ошибку. Начинаю задаваться вопросом, есть ли какая-то ошибка в модуле gulp-clean, который я использую

user805703 30.04.2019 10:54

попробуйте удалить функцию clean() и модуль gulp-clean, чтобы проверить, изменится ли что-то!

Muho 30.04.2019 21:47

Это отлично сработало для меня как быстрое грязное исправление для проекта, в котором мне нужно было перейти на gulp4 (используя gulp4-run-sequence)

jameslol 10.08.2020 05:11

Другие вопросы по теме