Сборка фронтенда с помощью grunt, минимальный набор
01.03.2015Казалось бы, вот уже 21-век, а некоторые программисты все еще не пользуются системами автоматической сборки фронтенда. Созданы тысячи инструментов, написаны десятки статей и howto (про bower, про grunt, про glup и другие), но снова и снова встречаю тоже самое - бардак и нулевая оптимизация frontend части.
Как правило причины в этом две:
- плохое знание англ. языка, или не желание выделить время для оптимизации
- пользователь windows (т.е работу через терминал воспринимают как "мистику")
Привожу свой подход к построению frontend части проекта:
Если вы еще не использует bower и grunt (или схожие по целям программы), ознакомитесь с документацией на страницах этих проектов, и попробуйте использовать это в своих проектах.
Что вы получите в итоге?
- перестанете писать css "вручную" (можно, но нет смысла), используем less или scss для генерации css
- качественно оформленный фронтенд, который легко поддерживать
- подготовка спрайтов, изображений "для web", обработка векторной графики в автоматическом режиме
- включаемые области в html файлах (повторения)
- перестанете нажимать "f5" после изменений в верстке, livereload в помощь (странно, но некоторые до сих пор так делают :))
- перестанете работать по ftp-ssh, или вручную заливать файлы после изменений
Все что нужно, это выделить немного времени и ознакомиться с документацией, например bower и grunt. Или же на рус.языке можете прочитать данные посты про bower и про grunt.
После ознакомления с документацией или статьями, предлагаю присмотреться к следующим пакетам, "must have" в наборе почти любого проекта:
- grunt-contrib-watch - отслеживание изменений в файлах
- grunt-contrib-cssmin - операции с css файлами. Сжатие, упаковка, добавление префиксов, замена путей и многое другое.
- grunt-contrib-uglify - упаковка js файлов
- grunt-contrib-concat - конкатенация любых файлов (шаблонов jade, js, css итд.)
- grunt-bower-concat - конкатенация пакетов установленных с помощью bower
- grunt-contrib-less - компилятор less to css
- less-plugin-clean-css - плагин к less компилятору
- less-plugin-autoprefix - плагин к less компилятору, автопрефиксер "-webkit -moz" итд.
- grunt-contrib-jshint - проверка-валидация js кода
- grunt-spritesmith - генератор спрайтов по картинкам
- grunt-contrib-imagemin - сжатие(обработка) изображений для веб
- grunt-css-url-rewrite - замена путей в css
- grunt-contrib-copy - копирование файлов
- grunt-contrib-symlink - создание симлинков
- grunt-contrib-connect - плагин для livereload
- grunt-rsync - оболочка rsync, для заливки файлов на внешний сервер
- grunt-notify - системные уведомления о завершении сборки
- grunt-ssh - выполнение shell команд через ssh на удаленном сервере
- grunt-shell - выполнение shell команд локально
Комментарии