Я пытаюсь настроить процесс наблюдения в gulp, который принимает измененный файл в качестве параметра.
Я попытался использовать хук ".on ('change' ...)" из gulp.watch (), так как не существует другого способа получить полный путь к файлучто вызвало событие часов.Это позволяет мне получить доступ к файлу, который был изменен, но я не могу понять, как выполнить задачу на этом этапе.В другом месте я читал, что gulp.start () работал, но в gulp 4.0 эта функциональность, похоже, была удалена.
Я также посмотрел на gulp-run и пытался выполнить задачу изкомандная строка, но, похоже, это тоже не сработало.
Это урезанная версия того, что я использую:
gulp.task("watch", function() {
return gulp.watch("<path and filemask to watch>")
.on("change", function(file) {
runTaskHere(file);
})
}
Я могу запустить этот наблюдатель через "gulp watch"в командной строке, а затем измените файл, который является частью пути и файловой маски.Это все отлично работает.Я могу распечатать параметр файла, и это правильно.Я просто не могу заставить задачу выполнить с этого момента.Если я немного переключу код, чтобы вместо анонимной функции использовался конвейер gulp.series (), задача выполнялась, как и ожидалось, но у меня нет доступа к пути и имени файла измененного файла.
По сути, я пытаюсь вручную запустить задачу gulp из gulpfile.js на основе информации о пути к измененному файлу и запустить ее по существу из функции-оболочки (.on (...) крючок от вахты).Я понимаю, что дизайнеры gulp пытались уйти от этого паттерна, но все еще есть случаи, когда я не вижу альтернативы этому.Если невозможно достичь того, что я здесь делаю, есть ли в gulp какие-либо другие варианты, позволяющие добиться того, что я пытаюсь сделать здесь?
Является ли мой единственный вариант создания часов для каждого каталога (на основе моих правил синтаксического анализа) и забыли о попытке прочитать информацию о пути?