Рекурсивные пути (**) в функции startwatch замедляют сборку
quixtar opened this issue · comments
Доброго времени суток!
Уже давно замечаю проблему, когда при долгой работе стандартного таска gulp default, который включает в себя startwatch функцию слежения за изменениями в файлах - выполнение таска замедляется с каждой новой итерацией.
При этом можно не вносить никаких изменений в рабочие файлы, таск просто выполняется дольше с каждым новым проходом.
Поиск в интернете дал наводку на использование рекурсивных путей в паттернах (**). Заменив такие пути на более конкретные и избавившись от двойных астерисков мне удалось ускорить обработку файлов и в целом время выполнения перестало расти.
С файлами работаю в VS Code.
Что я сделал:
function startwatch() {\
watch(baseDir + '/**/' + preprocessor + '/**/*', styles);\
watch(baseDir + '/**/*.{' + imageswatch + '}', images);
watch(baseDir + '/**/*.{' + fileswatch + '}').on('change', browserSync.reload);
watch([baseDir + '/**/*.js', '!' + paths.scripts.dest + '/*.min.js'], scripts);
}
заменил на:
function startwatch() {
watch(baseDir + '/' + preprocessor + '/**/*', styles);
watch(baseDir + '/images/src/*.{' + imageswatch + '}', images);
watch(baseDir + '/*.{' + fileswatch + '}').on('change', browserSync.reload);
watch([baseDir + '/js/*.js', '!' + paths.scripts.dest + '/*.min.js'], scripts);
}
(согласно структуре своего конкретного проекта)
Не замечал, использую давно и в довольно не маленьких проектах. Сделайте pull, рассмотрим.
Хочу так же заметить, что если в baseDir будет папка с большим количеством файлов, компиляция может сильно замедлиться. Даже если исключить определенные папки '!' + basedir + '/bitrix/'
. К примеру, я это заметил попробовав собрать проект в папке с битрикс (содержит: Файлов: 70 579; папок: 29 599)
Здравствуйте. Попробуйте поэкспериментировать с Globs, ваше решение оформите в виде Pull request в репозиторий OH5.
gulpjs/gulp#1878
Похожая проблема.