raselgit
@raselgit
Веб-дизайнер

Почему не запускается таск «clean» во время сборки?

Обновился до 4 версии Gulp и стал устранять ошибки, которые стали появляться.

Во время сборки проекта выходит ошибка:

5c39ebcca17b4190867808.png
Для очистки папки dist использую плагин del. Вот коды тасков:
// Clean Dist

gulp.task('clean', function() {
	return del.sync('dist');
});

// Build project

gulp.task('build', gulp.parallel('clean', 'nunjucks', 'sass', 'scripts', 'css-libs', 'img'), function() {
	var buildHtml = gulp.src('app/*.html')
	.pipe(gulp.dest('dist'));

	var buildCss = gulp.src([
		'app/css/styles.css',
		'app/css/libs.min.css'
		])
	.pipe(gulp.dest('dist/css'))

	var buildJs = gulp.src([
		'app/js/common.js',
		'app/js/libs.min.js'
	])
	.pipe(gulp.dest('dist/js'))

	var buildFonts = gulp.src('app/fonts/**/*')
	.pipe(gulp.dest('dist/fonts'))
});

В чем может быть проблема?
  • Вопрос задан
  • 171 просмотр
Решения вопроса 1
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
просто вызовите коллбек, сообщив этим, что задача завершена.

gulp.task('build', gulp.parallel('clean', 'nunjucks', 'sass', 'scripts', 'css-libs', 'img'), function(cb) {
  var buildHtml = gulp.src('app/*.html')
  .pipe(gulp.dest('dist'))
  .on('end', function(){
    cb();// сигналим о завершении
  })


gulp.task('clean', function(cb) {
  del('dist').then( (paths) => {
    cb(); // сигналим о завершении
  }); 
});


Очистку не нужно запускать параллельно с другими задачами. Сначала очистить, потом создавать. т.е.

gulp.series(
  'clean',
   gulp.parallel(все остальное)
)
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
dimovich85
@dimovich85 Куратор тега JavaScript
https://u-academy.net/
@Pipop
Была такая же ошибка. Костыльный метод:
var paths = {
  dirs: {
    build: '.build'
  }
};


gulp.task('clean', function (cb) {
  del(paths.dirs.build);
  cb();
});
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы