Клонируем проект к себе командой git clone git@github.com:ajile/eurochem.git
, далее переходим в созданную директорию cd eurochem
и устанавливаем зависимости npm install
, если приложение устанавливается не для разработки, тогда необходимо добавить соотв. флаг npm install --production
для исключения установки зависимостей devDependencies
.
Файлы-настроек разделены по окружениям, находятся в директории configs/
. По умолчанию используется окружение development
и соотв. файл configs/development.json
.
Сервер запускается командой ./server/bin/www
. Если Вы хотите изменить окружение, можно сделать так ./server/bin/www --settings=production
или так NODE_ENV=production ./server/bin/www
. По умолчанию при запуске проекта на тестовом сервере или продакшне нужно установить переменную окружения NODE_ENV
в значение test
или production
. Подробнее об этом в разделе "Деплоймент". Для того чтобы поднять сервер для отладки, можно запустить приложение с автоматическим перезапуском в случае изменения файлов: DEBUG=eurochem-server,routes:* nodemon "./server/bin/www"
. Также можно воспользоваться командой gulp develop
, которая еще следит за изменениями файлов. Подробнее о ней в разделе "Команды".
Проект использует gulp. Файл конфигурации команд располагается здесь gulp/config.js. Каждая команда находится в отдельном файле в директории gulp/tasks. Идея такого подхода заимствована из проекта gulp-starter.
Для запуска проекта в режиме отладки. Сначала проверяет качество кода, билдит файлы, запускает сервер и следит за изменениями в коде. Клиентский код пропускается через команду gulp browserify
, серверный через перезапуск сервера gulp nodemon
.
Проверка качества серверного и клиентского js кода (lint_server
и lint_client
).
Сборка и выкладка документации. Команда инициирует сборку документации (gulp build_docs
) и выкладывает (spread_docs
) в специальную ветку репозитория gh-pages, таким образом документация становится доступной по адресу http://ajile.github.io/eurochem/.
Раздел в работе.
Для более качественного структурирования проектов, удобства и гибкости нужно серверную
, клиентскую
и общую
части разнести по репозиториям (eurochem-server
, eurochem-client
и eurochem-core
соотв.) с указанием зависимостей между ними. Снабдить каждый проект своими тестами
, своей документацией
и своими задачами
. На настоящий момент все 3 части приложения представлены одним репозиторием, так сделано для повышения скорости выполнения задачи вопреки парадигмам маштабируемости и сингулярности.