Gulp: Почему моя "чистая" задача не работает с использованием функции обратного вызова?

Мой файл глотка выше:

var gulp = require('gulp');

var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var del = require('del');

gulp.task('clean', function(cb) {
    del(['dist/*.js'], cb);
});

Когда я запускаю "gulp clean", я получаю:

[12:45:05] Using gulpfile

[12:45:05] Starting 'clean'...

Команда удаляет файлы из папки dist.

Если я удалю функцию обратного вызова, результат будет:

gulp.task('clean', function() {

    del(['dist/*.js']);

});

[12:54:07] Using gulpfile 

[12:54:07] Starting 'clean'...

[12:54:07] Finished 'clean' after 4.

Что я делаю не так с функцией обратного вызова?

С уважением.

2 ответа

Решение

del сам по себе возвращает обещание, поэтому, если вы хотите использовать его с обратным вызовом, вам нужно будет сделать что-то вроде следующего:

del(['dist/*.js']).then(function(paths) {
    cb(paths);
});

Или же:

del(['dist/*.js']).then(cb);

пути, являющиеся массивом удаленных папок / файлов.

Существует также del.sync, который не возвращает обещание, а представляет собой массив удаленных папок / файлов.

Модульdel node.js не принимает функцию обратного вызова в качестве параметра.

Проверьте документ на npmjs.com для получения дополнительной информации: https://www.npmjs.com/package/del

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