Я использую gulp, чтобы отслеживать изменения в нескольких папках и синхронизировать c их с набором мест назначения. Но во время процесса сборки одна из моих исходных папок («dist») удаляется и воссоздается, и это нарушает gulp.watch
, поэтому мне приходится прерывать и перезапускать процесс.
Я смог чтобы избежать ошибки, добавьте это в начало моей задачи:
gulp.task("home", function() {
// Added this code
var fs = require("fs")
if (!fs.existsSync(sourceFolder)) {
console.log("Dist folder temporarily unavailable, probably building...")
return gulp
}
// Original task
return gulp
.src(sourceFolder)
.pipe(changed(destFolder))
.pipe(gulp.dest(destFolder))
})
...
gulp.task("watch", function() {
gulp.watch(sourceFolder, { interval: 500 }, gulp.series(["home"]))
})
Но теперь, когда процесс сборки завершен и папка dist возвращается, задача не запускается снова , поэтому новые файлы не копируются в место назначения. Я не получаю никаких других ошибок.
Есть идеи? Лучшее, что я могу понять, это то, что, возможно, gulp.watch
кэширует дескриптор к sourceFolder
, поэтому удаление и повторное создание папки приводит к тому, что она теряет папку и, таким образом, не видит новую папку и файлы.