Для разворачивания проекта должны быть установлены:
- nodejs + npm
- ruby, sass(+ compass)
gem install compass
- npm пакеты
npm install -g grunt-cli bower
Установка/обновление npm пакетов проекта:
npm install
Установка/обновление bower пакетов:
bower install
Для запуска и разработки на локальном компьютере использовать команду:
grunt serve
, собрать билд (выполняет таски: минификация, конкатенация и пр. и складывает в папку build):
grunt build
, запустить тесты:
grunt test
. и проверка кодстайла:
grunt jshint
- Кодстайл будет проверяться jshint'ом и его настройки описаны в файле .jshintrc (если пользуетесь PhpStorm'ом, то этот файл можно подключить в настройках для проекта и будет подсвечивать в коде неверное использование)
- Отступы в проекте (html, js, scss) - 2 пробела
- В проекте используется livereload плагин для grunt -> нет необходимости обновлять страницу в браузере при изменении кода (js, html, css) и структуры (добавление картинок и тд), обновление будет происходить само.
- Для устанавки js библиотек использовать bower
bower search [jslib]
bower search jquery
bower install jquery --save
Продакшн сервер обновляется с помощью jenkins. Код продакшн версии находится в ветке prod. Для обновления нужно выполнить следующие шаги:
- получить последние код из репозитория (на момент написания мануала это: [email protected]:robotd/pd_public_dev.git)
git checkout master
git pull --rebase origin master
git checkout prod
git pull --rebase origin prod
- делаем merge ветки master (нестабильный код девелоперского сервера, на котором тестируют функционал) в ветку prod
git checkout prod
git merge master --no-ff
- затем отправляем merge-commit обратно в репозиторий
git push origin prod
- заходим в jenkins (k.pohoronnoedelo.ru:8080) и запускаем задачу pohoronnoe delo prod. Если все прошло успешно, то поздравляю, продакшн сервер обновился :)
Для генерации снапшотов для поисковых пауков используется PhantomJS. Веб сервер проксирует запросы с GET параметром ** escaped_fragment ** к локально запущеному серверу PhantomJS:
phantomjs --disk-cache=no app/bower_components/angular-seo/angular-seo-server.js 8888 http://localhost/index.html
phantomjs --disk-cache=no app/bower_components/angular-seo/angular-seo-server.js 8888 file:///path/to/index.html