Я использую 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);
});
Но проблема в том, что это не очень надежно потому что со временем таймаута не угадаешь.
Как правильно отлавливать такое?