Shugich
@Shugich
Фронтенд-разработчик

Почему gulp не видит вновь созданную папку?

Я использую Gulp 4 и у меня есть таск, который локально деплоит код:

gulp.task('deploy', gulp.series('clean', 'handlers:all', 'deployment'));


Задача состоит из трех подзадач:
1. Таск «clean»: удаляет папку 'build'.
2. Таск «handlers:all»: вновь создает эту папку и выплевывает туда файлы (html, css, js, ...)
3. Таск «deployment»: берет содержимое папки build и переносит туда, куда я прошу это сделать.

Проблема в deployment. Он выглядит примерно вот так:

gulp.task('deployment', done => {
	gulp.src('./build/')
            .pipe(gulp.dest('../other-project/'));
});


У меня в проекте все несколько сложнее, но суть такая же. Дело в том, что gulp.src просто не находит папку 'build' потому что ее удалил таск 'clean'. Если поставить небольшой таймаут, то файлы считаются:

gulp.task('deployment', done => {
	setTimeout(() => {
	  gulp.src('./build/')
              .pipe(gulp.dest('../other-project/'));
	}, 2000);
});


Но проблема в том, что это не очень надежно потому что со временем таймаута не угадаешь.

Как правильно отлавливать такое?
  • Вопрос задан
  • 165 просмотров
Решения вопроса 1
@Lebed71
Node.js Developer
Прежде чем начать таску, которая работает с вновь созданной папкой дождитесь окончания работы таски, которая эту папку создает. Например так, как я порекомендовал тут - Как сделать последовательное выполнение тасков в GULP?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@vitstr
Front-end developer
А вы не удаляйте папку, а очищайте...
Ответ написан
Ваш ответ на вопрос

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

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