agragregra / OptimizedHTML-5

OptimizedHTML 5 – Lightweight production-ready Gulp starter.

Home Page:https://webdesign-master.ru/blog/tools/optimizedhtml-5.html

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Рекурсивные пути (**) в функции startwatch замедляют сборку

quixtar opened this issue · comments

Доброго времени суток!

Уже давно замечаю проблему, когда при долгой работе стандартного таска gulp default, который включает в себя startwatch функцию слежения за изменениями в файлах - выполнение таска замедляется с каждой новой итерацией.

image

При этом можно не вносить никаких изменений в рабочие файлы, таск просто выполняется дольше с каждым новым проходом.

Поиск в интернете дал наводку на использование рекурсивных путей в паттернах (**). Заменив такие пути на более конкретные и избавившись от двойных астерисков мне удалось ускорить обработку файлов и в целом время выполнения перестало расти.

С файлами работаю в 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
Похожая проблема.