похвальное начинание. дальше на пути вас ждёт минимум browserify, а лучше сразу webpack с их дивными мирами трансформаций/лоадеров/плагинов. и создание генератора для yeoman.
Самая интересная киллер-фича для меня, это то, что он собирает ассеты любого типа, будь то картинка или шрифт.
Например, можно установить font-awesome из npm и добавить require('font-awesome/less/font-awesome.less'); после чего webpack заботливо соберет все ассеты (все шрифты) в отдельную папочку, доступную из веба.
«и создание генератора для yeoman»
Это, на мой взгляд, самый верный путь для решения задач такого рода. Но у йомена есть большой минус — он жутко долго стартует. И пока они это никак не починят.
По своему опыту скажу, что очень сложно разработать build систему, которая будет устраивать хотя бы 10% пользователей исключая разработчиков такой системы. У каждого проекта свои проблемы и способы их решения. В большинстве случаев, наиболее полезная часть — структура и описание, как система работает, чтобы другие разработчики смогли перенять интересные идеи и реализовать их у себя в проектах.
Чем мне понравилась статья, так это то что Вы разложили по полочкам саму структуру и принцип работы разрабатываемого плагина, а не просто показали, что есть такой то тул и использовать его так.
Вероятно лучше было задать вопрос в топике про спрайты, но да не суть.
А для каких целей до сих пор используются спрайты?
Я пару лет назад перешел на вариант иконок прямо в css файлах.
Всякие Stylus'ы как раз позволяют писать в CSS что-то типа
Плюсы:
— Хорошо кэшируется вместе со стилями
— Позволяет не заморачиваться с позиционированием картинки / её анимацией
— Отображается даже в случае отключенной графики (обращаю внимание что подход только для маленьких иконок)
Минусы:
— Может не работать в старых браузерах, хотя их процент, в большинстве проектов, ничтожно мал
— Требует надстройки в виде stylus/sass/less или подобной, хотя, опять же, они у вас и так используются
Можно какой-нибудь живой пример, пожалуйста?
Большие картинки класть в спрайты, как мне кажется, не лучшая идея.
Есть шанс, что итоговый спрайт будет весить больше, чем картинки по отдельности, при этом выигрыша не дает.
Обычно на сайте больших картинок, именно в стилях, буквально пару штук: разные HD фоны или типа того.
Обычные же картинки на странице так или иначе грузятся через img, а не через стили.
Я уже проводил. В среднем 10-20% тяжелее оригинала.
При этом, надо обратить внимание, что если правильно выбрать шифрование оригинала, даже с прибавкой в 10-20%, суммарно будет меньше спрайта, т.к. спрайты не могут шифроваться по разному. Можно у Лебедевачутьчутьпочитать.
А если есть возможность использовать SVG для иконок, то они вообще такие копейки весят, что аж смешно. На самом деле грузятся и отрисовываются очень быстро, еще и перекрашивать можно.
Автоматизированный шаблон для front-end проектов