Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
quixtar opened this issue Jun 29, 2020 · 4 comments

Comments

@quixtar
Copy link
Contributor

quixtar commented Jun 29, 2020

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

Уже давно замечаю проблему, когда при долгой работе стандартного таска 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);
}

(согласно структуре своего конкретного проекта)

@agragregra
Copy link
Owner

Не замечал, использую давно и в довольно не маленьких проектах. Сделайте pull, рассмотрим.

@sukhikh18
Copy link

Хочу так же заметить, что если в baseDir будет папка с большим количеством файлов, компиляция может сильно замедлиться. Даже если исключить определенные папки '!' + basedir + '/bitrix/'. К примеру, я это заметил попробовав собрать проект в папке с битрикс (содержит: Файлов: 70 579; папок: 29 599)

@agragregra
Copy link
Owner

Здравствуйте. Попробуйте поэкспериментировать с Globs, ваше решение оформите в виде Pull request в репозиторий OH5.

@quixtar
Copy link
Contributor Author

quixtar commented Jul 25, 2020

gulpjs/gulp#1878
Похожая проблема.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants