Задать вопрос
raselgit
@raselgit
Веб-дизайнер

Почему после сборки проекта не появляется папка dist в Gulp 4?

Перешел на Gulp 4 версии и после выполнения таска build, папка dist не создается.
// Build project

gulp.task('build', gulp.series('clean', gulp.parallel('nunjucks', 'sass', 'scripts', 'css-libs', 'img')), function() {
	var buildHtml = gulp.src([
		'app/*.html',
		'app/robots.txt'
	])
	.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'))
});


Как решить эту проблему? В 3 версии все работало корректно.
  • Вопрос задан
  • 789 просмотров
Подписаться 1 Средний 6 комментариев
Решения вопроса 1
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
в общем проблема похоже в методе task()
Его сигнатура изменилась
task([taskName], taskFunction)

Здесь нет третьего параметра, как было в третьей версии.
Соответственно объявленные анонимные функции не запускаются (этот параметр игнорится)

Старый подход к объявлению задач с предварительным запуском других не работает.
Нужно отдельно описывать все задачи и запускать через series/parallel, или анонимными функциями в том же series

Было:

gulp.task(
  'sometask',      // название задачи
  ['anothertask'], // выполнить перед задачей
  function(){}     // сама задача
)


Стало:

gulp.task(
  'sometask',     // название задачи
  gulp.series(    // последовательно выполнить
    'anothertask',  // другие задачи
     function(){}   // и саму задачу
  )
)


Добавлю неправильный вариант, который может ввести в заблуждение:

gulp.task(
  'sometask',     // название задачи
  gulp.series('anothertask'),  // выполнить другие задачи
  function(){}   // и саму задачу
)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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