Задать вопрос
@RaDir

Почему gulp (v4) выдает «Did you forget to signal async completion?»?

Всем привет!

Gulpfile.js:
'use strict';

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

var arrBlocksNames = [
    'sass.common.blocks'
];

function cleanSassBlocks() {
    arrBlocksNames.forEach(function(blocksName) {
        return gulp.src(blocksName + '/**/*.css' )
            .pipe(clean({force: true}));
    });
}

gulp.task('default', gulp.series(cleanSassBlocks));


Консоль выдает ошибку/предупреждение:
[13:26:11] Starting 'default'...
[13:26:11] Starting 'cleanSassBlocks'...
[13:26:11] The following tasks did not complete: default, cleanSassBlocks
[13:26:11] Did you forget to signal async completion?


При этом все удаляет как надо. В чем причина, подскажите, пожалуйста?
  • Вопрос задан
  • 20274 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@RaDir Автор вопроса
Спасибо за ответы, но разобрался сам и решил вопрос так:
arrBlocksNames.forEach(function(blocksName) {
    gulp.task(blocksName, function() {
        return gulp.src(blocksName + '/**/*.css')
            .pipe(clean({force: true}));
    });
});
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Nixtone
@Nixtone
В аргемент функции нужно добавить done
А в конце функции написать done();

Вот и все
Ответ написан
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
return arrBlocksNames.map(...
Ответ написан
spmbt
@spmbt
Нужно запустить продолжение процесса:

function cleanSassBlocks(f) { f();
    arrBlocksNames.forEach(function(blocksName) {
        return gulp.src(blocksName + '/**/*.css' )
            .pipe(clean({force: true}));
    }); 
...


(как подсказано в https://github.com/sindresorhus/del/issues/45#issu... )
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы