Давно уже как-то разбирался, что за зверь такой yeoman — как-то так пришёл к выводу, что штука для меня довольно бесполезная. Ну скаффолдиг ну и чо? Практически любой приличный фреймворк умеет генерить приложение на себе самом. И уверен сделает это лучше чем какой-то внешний генератор. Сегодня понял где я эту штуку можно применить.
Понадобилось мне потестировать одну js библиотечку. И вот чё-то сидел я и думал куда бы её прикрутить, чтоб проверить.
В какой-нибудь готовый проект вставить? Как-то извратно … Новый рельсовый проект ради этого создавать — тоже как-то уж слишком.
Можно конечно на скорую руку минимальную страничку накропать, но опять-же зависимости подключать, создавать файлы, стили — да ещё привык к coffeescript-у и sass-у — писать на голом js-е и css-е как-то уже и не хочется. В общем избаловался видимо за последние годы — как говорится «к хорошему быстро привыкаешь».
И как-то пришло осознание, что времена когда минимальный сайтик можно по быстрому «слабать на коленке» пользуясь одним notepad-ом уже безвозвратно ушли.
И вот тут-то я и вспомнил про этот самый yeoman. Собственно это именно то, что нужно для такого быстрого старта. Оно насколько я помню именно для этого и задумано — быстро сгенерить болванку сайта, где уже будет подключен минимальный набор библиотек и будут работать «искаропки» всевозможные препроцессоры, что позволит использовать «расово верный» coffeescript и scss.
От слов к делу
Предполагается, что nodejs
уже установлен — по крайней мере у меня именно так и соответственно процесс его установки описывать не буду.
Ставим yeoman
1 | $ npm install -g yo |
Ставим генератор для обычного веб приложения. Генераторов на самом деле довольно много. Посмотреть полный список можно тут. Но для моих скромных целей вполне достаточно обычного generator-webapp
.
Ставим:
1 | $ npm install -g generator-webapp |
Создаём папку для проекта и запускаем генератор:
1 | $ mkdir my-yo-project |
Оно запросит некоторые опции типа подключать ли ту или иную библиотеку. В общем прочекал все галочки и нажал Enter
. Yeoman сгенерил болванку приложения, скачал и установил зависимости.
Запускаем сервер. Кстати поддерживается LiveReload, что как-бы тоже неплохой бонус.
1 | $ grunt serve |
При этом по адресу http://localhost: 9000 стало доступной веб-страничка с bootstrap-ом, Modernizr-ом и HTML5 Boilerplate-ом. LiveReload работает прямо из коробки — никаких дополнительных телодвижений не потребовалось.
Можно так-же запускать тесты. В этом приложении используется mocha
. Но это уже за пределами моих потребностей — возможно когда-нибудь и понадобится.
1 | $ grunt test |
Ну и конечно не всё прошло гладко — coffeescript
почему-то не работал. Как оказалось при генерации можно указать ряд опций, в числе которых и нужная мне опция --coffee
. Ну и как оказалось в качестве фреймворка для тестирования можно подключить jasmine
.
Перезапускаем генерацию приложения с нужно опцией и соглашаемся перезаписать файлы.
1 | $ yo webapp --coffee |
Видим в консоли браузера заветные строчки Allo from CoffeeScript!
. Ура — всё работает. Я полностью удовлетворён — практически без геморроя сделал одноразовый сайтик для тестов.
Вынужден констатировать факт, что это очень удобное средство. Но для определённого круга задач.
Комментарии