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