Начал собирать свою универсальную сборку на Gulp
Решил автоматизировать всю рутину. Пишу таски, чтобы автоматически сжимались картинки, компилировались стили, объединялись скрипты и обновлялась страница прямо в браузере во время верстки.
На фото — текущая структура
Решил автоматизировать всю рутину. Пишу таски, чтобы автоматически сжимались картинки, компилировались стили, объединялись скрипты и обновлялась страница прямо в браузере во время верстки.
На фото — текущая структура
gulpfile.js. Настраиваю автоматический деплой и слежку за файлами через watch. Как допишу — залью репозиторий на гитхаб.🚀 Gulp-сборка официально готова и запушена на GitHub!
Сегодня плотно посидел и докрутил до идеала свой стартовый шаблон для фронтенд-верстки. Пришлось немного повозиться с версиями плагинов (классика Node.js), но в итоге всё завелось как надо.
Что умеет сборка на данный момент:
* Компилирует SCSS/SASS в чистый и сжатый CSS.
* Сама расставляет вендорные префиксы для старых браузеров (Autoprefixer).
* Склеивает и минифицирует JS-файлы (Concat + Uglify).
* Из коробки поддерживает адаптивный слайдер Swiper.
* Автоматически обновляет страницу в браузере при любом изменении кода через BrowserSync.
Планирую добавить оптимизацию картинок и шрифтов, но база уже полностью рабочая. Буду использовать её как донора для всех своих будущих сайтов.
Чекайте репозиторий, зацените README и код: 👉 https://github.com/xycu2/gulp-assembly
(сборку буду дополнять)
Сегодня плотно посидел и докрутил до идеала свой стартовый шаблон для фронтенд-верстки. Пришлось немного повозиться с версиями плагинов (классика Node.js), но в итоге всё завелось как надо.
Что умеет сборка на данный момент:
* Компилирует SCSS/SASS в чистый и сжатый CSS.
* Сама расставляет вендорные префиксы для старых браузеров (Autoprefixer).
* Склеивает и минифицирует JS-файлы (Concat + Uglify).
* Из коробки поддерживает адаптивный слайдер Swiper.
* Автоматически обновляет страницу в браузере при любом изменении кода через BrowserSync.
Планирую добавить оптимизацию картинок и шрифтов, но база уже полностью рабочая. Буду использовать её как донора для всех своих будущих сайтов.
Чекайте репозиторий, зацените README и код: 👉 https://github.com/xycu2/gulp-assembly
(сборку буду дополнять)
GitHub
GitHub - xycu2/gulp-assembly
Contribute to xycu2/gulp-assembly development by creating an account on GitHub.
This media is not supported in your browser
VIEW IN TELEGRAM
🕹 Time to play! Запустил свою мини-игру в ТГ
Пока все только говорят о разработке, я взял React + JS и собрал полноценное веб-приложение прямо внутри мессенджера.
Хостинг заряжен на 2 года вперёд, так что сервак точно выдержит любой наплыв! 😎
🚀 Сыграть прямо сейчас: @VinGed_bot
📁 Посмотреть open-source код: здесь
сможете побить мой личный рекорд? Заходите в бота, тестируйте геймплей и кидайте свои скрины с результатами в комменты. Если вдруг найдёте баги — пишите, буду фиксить! 👇
Пока все только говорят о разработке, я взял React + JS и собрал полноценное веб-приложение прямо внутри мессенджера.
Хостинг заряжен на 2 года вперёд, так что сервак точно выдержит любой наплыв! 😎
🚀 Сыграть прямо сейчас: @VinGed_bot
📁 Посмотреть open-source код: здесь
Challenge:
сможете побить мой личный рекорд? Заходите в бота, тестируйте геймплей и кидайте свои скрины с результатами в комменты. Если вдруг найдёте баги — пишите, буду фиксить! 👇
🚀 Планы на прокачку моей Gulp-сборки: avif, svg sprite и полная автоматизация!
Всем привет! Неделю назад я закончил базовую версию своей Gulp-сборки, но и не думал её забрасывать. Проект живет! Сейчас я набрасываю план крупного обновления, которое полностью автоматизирует всю рутину по максимуму.
Вот что я планирую добавить в ближайшее время и залить на GitHub:
📸 Продвинутая работа с графикой: Хочу уйти от тяжелых .png и .jpg. В планах настроить автоматизацию картинок и их конвертацию не только в .webp, но и в ультра-современный формат .avif для максимального сжатия без потери качества.
🦄 Автоматические SVG-спрайты: Хочу сделать так, чтобы все векторные иконки автоматически собирались в один оптимизированный svg sprite. Это супер-полезно для ускорения загрузки сайтов и удобства в верстке.
⚡️ Полная автоматизация шрифтов: Больше никакого ручного конвертирования через сторонние сайты. Сборка будет сама брать исходники .ttf/.otf, переводить их в веб-форматы .woff и .woff2 и автоматически подключать в стили.
🪵 Компонентный подход (include файлов): Настрою сборку HTML так, чтобы можно было разбивать код на отдельные кусочки (шапка, подвал, блоки) и легко инклудить их в нужные страницы.
Скоро засяду за код, реализую всё это и обновлю репозиторий. Как вам такой набор фич? Что бы вы еще добавили в идеальную сборку? 👇
Всем привет! Неделю назад я закончил базовую версию своей Gulp-сборки, но и не думал её забрасывать. Проект живет! Сейчас я набрасываю план крупного обновления, которое полностью автоматизирует всю рутину по максимуму.
Вот что я планирую добавить в ближайшее время и залить на GitHub:
📸 Продвинутая работа с графикой: Хочу уйти от тяжелых .png и .jpg. В планах настроить автоматизацию картинок и их конвертацию не только в .webp, но и в ультра-современный формат .avif для максимального сжатия без потери качества.
🦄 Автоматические SVG-спрайты: Хочу сделать так, чтобы все векторные иконки автоматически собирались в один оптимизированный svg sprite. Это супер-полезно для ускорения загрузки сайтов и удобства в верстке.
⚡️ Полная автоматизация шрифтов: Больше никакого ручного конвертирования через сторонние сайты. Сборка будет сама брать исходники .ttf/.otf, переводить их в веб-форматы .woff и .woff2 и автоматически подключать в стили.
🪵 Компонентный подход (include файлов): Настрою сборку HTML так, чтобы можно было разбивать код на отдельные кусочки (шапка, подвал, блоки) и легко инклудить их в нужные страницы.
Скоро засяду за код, реализую всё это и обновлю репозиторий. Как вам такой набор фич? Что бы вы еще добавили в идеальную сборку? 👇
xycu2.rar
Photo
Логи за день: победил капризный Gulp и настроил сжатие картинок 🛠🧑💻
Сегодня был плотный бой со сборщиком. Задача минимум выполнена — настроил автоматическую оптимизацию графики для будущих проектов, но не обошлось без приключений.
Что сделано:
✅ Полностью победил проблему с импортами старых и новых ES-модулей в Node.js (привет [Module: null prototype] и костылям с .default).
✅ Разбил единый тяжелый таск обработки изображений на независимые потоки — код теперь чистый, логичный и масштабируемый.
✅ Настроил автоматическую генерацию современных WebP картинок и жесткое сжатие оригиналов (PNG/JPG) через gulp-imagemin. Всё летает и компилируется за пару секунд!
Стена, в которую уперся: Связка с gulp-avif наотрез отказалась заводиться. Постоянно сыпалась системная ошибка Input buffer contains unsupported image format. Опытным путем проверено: переименование файлов, очистка метаданных и фильтрация скрытого мусора через фигурные скобки {png,jpg,jpeg} не помогли.
Судя по всему, баг сидит глубоко внутри самого плагина или его бинарника avifenc, который конфликтует с моим окружением Node.js.
План действий: Пока что просто исключил AVIF из параллельного таска. Связки WebP + сжатый PNG/JPG для современных сайтов сейчас хватает с головой. Чуть позже, на свежую голову, попробую докопаться до этой проблемы (может, через откат версий или пересборку нативных модулей), а пока — сборка работает без ошибок, файлы жмутся, и это победа! 🚀
Сегодня был плотный бой со сборщиком. Задача минимум выполнена — настроил автоматическую оптимизацию графики для будущих проектов, но не обошлось без приключений.
Что сделано:
✅ Полностью победил проблему с импортами старых и новых ES-модулей в Node.js (привет [Module: null prototype] и костылям с .default).
✅ Разбил единый тяжелый таск обработки изображений на независимые потоки — код теперь чистый, логичный и масштабируемый.
✅ Настроил автоматическую генерацию современных WebP картинок и жесткое сжатие оригиналов (PNG/JPG) через gulp-imagemin. Всё летает и компилируется за пару секунд!
Стена, в которую уперся: Связка с gulp-avif наотрез отказалась заводиться. Постоянно сыпалась системная ошибка Input buffer contains unsupported image format. Опытным путем проверено: переименование файлов, очистка метаданных и фильтрация скрытого мусора через фигурные скобки {png,jpg,jpeg} не помогли.
Судя по всему, баг сидит глубоко внутри самого плагина или его бинарника avifenc, который конфликтует с моим окружением Node.js.
План действий: Пока что просто исключил AVIF из параллельного таска. Связки WebP + сжатый PNG/JPG для современных сайтов сейчас хватает с головой. Чуть позже, на свежую голову, попробую докопаться до этой проблемы (может, через откат версий или пересборку нативных модулей), а пока — сборка работает без ошибок, файлы жмутся, и это победа! 🚀
Победа над Gulp 🛠
Сегодня ночью случился настоящий баттл с кодом. Решил оптимизировать картинки в проекте, чтобы всё летало, но что-то пошло не так: после сжатия через Gulp файлы стали весить больше, чем оригиналы. Сказать, что я был в шоке — ничего не сказать. 🤯
Полдня ушло на то, чтобы понять, в чём прикол. Пришлось откатывать коммиты, пришлось зайти на Хабр и шаманить с кодировкой и версиями плагинов. Но я докопался до истины, настроил таски как надо и полностью закрыл эту проблему.
Все пруфы и историю этой эпичной борьбы уже запушил на Гитхаб теперь там идеальный рабочий код. 🦾
Сегодня ночью случился настоящий баттл с кодом. Решил оптимизировать картинки в проекте, чтобы всё летало, но что-то пошло не так: после сжатия через Gulp файлы стали весить больше, чем оригиналы. Сказать, что я был в шоке — ничего не сказать. 🤯
Полдня ушло на то, чтобы понять, в чём прикол. Пришлось откатывать коммиты, пришлось зайти на Хабр и шаманить с кодировкой и версиями плагинов. Но я докопался до истины, настроил таски как надо и полностью закрыл эту проблему.
Все пруфы и историю этой эпичной борьбы уже запушил на Гитхаб теперь там идеальный рабочий код. 🦾
Прокачал сборку Gulp до космических скоростей: как экономить время на сжатии картинок ⚡️
Помните мой недавний пост про боль со сжатием картинок? Так вот, я пошел дальше.
Раньше при каждом запуске таска gulp images сборщик послушно шуршал по всей папке src и заново пережимал ВСЕ картинки. Когда их две-три — пофиг. Но когда проект разрастается, сидеть и ждать по 15–20 секунд на каждый чих — это непозволительная роскошь для нервной системы.
Поэтому я внедрил в сборку плагин gulp-newer.
В чём фишка: Он сравнивает файлы в исходниках (src) и в готовой папке (dist). Если картинка уже была сжата и не менялась, Gulp её просто пропускает. На обработку отправляются только новые или измененные файлы.
Результаты теста (закинул 1 новую картинку):
Было: ~13 секунд (Gulp пересжимал вообще всё)
Стало: 876 миллисекунд! 🚀 (меньше секунды!)
Таск convertWebp теперь пролетает за 213 мс, а imagemin обрабатывает ровно 1 новый файл, экономя кучу времени.
Сборка официально стала летать, а я сэкономил себе часы ожидания в будущем. Юзайте gulp-newer, берегите свои нервы! 😎
Помните мой недавний пост про боль со сжатием картинок? Так вот, я пошел дальше.
Раньше при каждом запуске таска gulp images сборщик послушно шуршал по всей папке src и заново пережимал ВСЕ картинки. Когда их две-три — пофиг. Но когда проект разрастается, сидеть и ждать по 15–20 секунд на каждый чих — это непозволительная роскошь для нервной системы.
Поэтому я внедрил в сборку плагин gulp-newer.
В чём фишка: Он сравнивает файлы в исходниках (src) и в готовой папке (dist). Если картинка уже была сжата и не менялась, Gulp её просто пропускает. На обработку отправляются только новые или измененные файлы.
Результаты теста (закинул 1 новую картинку):
Было: ~13 секунд (Gulp пересжимал вообще всё)
Стало: 876 миллисекунд! 🚀 (меньше секунды!)
Таск convertWebp теперь пролетает за 213 мс, а imagemin обрабатывает ровно 1 новый файл, экономя кучу времени.
Сборка официально стала летать, а я сэкономил себе часы ожидания в будущем. Юзайте gulp-newer, берегите свои нервы! 😎
Media is too big
VIEW IN TELEGRAM
Ребят, смотрите, как теперь работает автосжатие. Я просто закидываю новую картинку в папку, Gulp её моментально ловит, пережимает меньше чем за секунду и сам генерирует WebP. Больше никаких ожиданий по полминуты!
Добавил в свою сборку сжатие шрифтов в .woff / .woff2 / ttf форматы , запарился немного, но на опыте с картинками я знаю, что { encoding: false } в помощь.
❗️ Воюю с Gulp ❕
Заметил кучу багов в своей старой сборке, из-за которых файлы сильно раздувались в весе при финальном деплое:
1️⃣ Картинки увеличивались в размере в папке
2️⃣ Шрифты тоже раздувались при копировании.
3️⃣ SVG-спрайты ломались и весили больше положенного.
Решил сделать полный откат и начал переписывать таски почти с нуля. На данный момент сжатие CSS, JS и компиляция SCSS уже работают как раньше на ура.
🚀 Что нового: уже полностью пофиксил первый пункт с картинками! Нашел баг с кодированием бинарников и двойным сжатием потока — теперь всё улетает в
Да, пришлось снести прошлые коммиты, но лучше переписать таски заново и начисто, зато теперь я на 100% уверен в каждом таске. Дальше по плану — шрифты и спрайты! 💻
Заметил кучу багов в своей старой сборке, из-за которых файлы сильно раздувались в весе при финальном деплое:
1️⃣ Картинки увеличивались в размере в папке
dist. 2️⃣ Шрифты тоже раздувались при копировании.
3️⃣ SVG-спрайты ломались и весили больше положенного.
Решил сделать полный откат и начал переписывать таски почти с нуля. На данный момент сжатие CSS, JS и компиляция SCSS уже работают как раньше на ура.
🚀 Что нового: уже полностью пофиксил первый пункт с картинками! Нашел баг с кодированием бинарников и двойным сжатием потока — теперь всё улетает в
dist идеально оптимизированным.Да, пришлось снести прошлые коммиты, но лучше переписать таски заново и начисто, зато теперь я на 100% уверен в каждом таске. Дальше по плану — шрифты и спрайты! 💻
❤1
🚀 Проблемы решены!
Наконец-то до конца докрутил таск билда (
Что пофиксил и настроил:
Шрифты: Теперь в финальный билд летят строго сжатые форматы
Картинки: Прописал точечно (png, jpg, webp) — в
SVG-спрайт: Укротил плагин картинок. Теперь в билд закидывается только один готовый, сжатый
Качество: Самое главное — все файлы сохраняют свой сжатый формат байт-в-байт и не раздуваются обратно при копировании.
Код таска получился чистым. Кому интересно глянуть структуру или саму сборку, залил всё на GitHub:
👉 Здесь
Впереди еще много планов, следите за новостями! 🛠🔥
Наконец-то до конца докрутил таск билда (
building) в своей Gulp-сборке. Раньше папка dist немного забивалась мусором, но теперь всё работает отлично.Что пофиксил и настроил:
Шрифты: Теперь в финальный билд летят строго сжатые форматы
.woff и .woff2, никакой тяжелой исходной папки src.Картинки: Прописал точечно (png, jpg, webp) — в
dist больше не пролезает ничего лишнего.SVG-спрайт: Укротил плагин картинок. Теперь в билд закидывается только один готовый, сжатый
sprite.svg, а техническая папка stack со всеми дублями автоматически вычищается.Качество: Самое главное — все файлы сохраняют свой сжатый формат байт-в-байт и не раздуваются обратно при копировании.
Код таска получился чистым. Кому интересно глянуть структуру или саму сборку, залил всё на GitHub:
👉 Здесь
Впереди еще много планов, следите за новостями! 🛠🔥
GitHub
GitHub - xycu2/gulp-assembly
Contribute to xycu2/gulp-assembly development by creating an account on GitHub.
❤1
Сборка на Gulp практически готова! 🚀
Я довел до идеала свою сборку , все работает быстро и отлично, как часы.
Осталось поправить парочку моментов , но работа сборки на это никак не влияет, а именно:
1️⃣ донастроить итоговую папку dist.
2️⃣ поработать с путями , куда будут складываться сжатые картинки, шрифты, svg-спрайты, компоненты.
Сборкой можно активно пользоваться, инструкцию по использованию можно будет найти на моем GitHub в файле README в ближайшее время.
Дальше — чистый фокус на JS и подготовка к Vue! 💪
Я довел до идеала свою сборку , все работает быстро и отлично, как часы.
Осталось поправить парочку моментов , но работа сборки на это никак не влияет, а именно:
1️⃣ донастроить итоговую папку dist.
2️⃣ поработать с путями , куда будут складываться сжатые картинки, шрифты, svg-спрайты, компоненты.
Сборкой можно активно пользоваться, инструкцию по использованию можно будет найти на моем GitHub в файле README в ближайшее время.
Дальше — чистый фокус на JS и подготовка к Vue! 💪
❤1