В основе Express.js и Handelbars. Статика приложения размещается в Surge CDN, а само приложение в облаке Heroku. Автоматизация настроена в Circle CI.
В первую очередь необходимо выбрать уникальное имя проекта,
и указать его в поле name файла package.json.
Далее устанавливаем зависимости:
npm run deps:allКомпилируем TypeScript в директорию dist:
npm run buildЗапускаем сервис локально:
npm startИ открываем в браузере:
http://localhost:8080/
Авторизуемся в Heroku и создаём приложение:
npm run heroku-initКомпилируем TypeScript в директорию dist:
npm run buildРазмещаем статику в Surge CDN (в первый раз вводим почту и пароль):
npm run surgeДалее размещаем приложение:
npm run heroku| Команда | Действие |
|---|---|
| clean | Удаление зависимостей и собранных файлов |
| build | Сборка приложения |
| build:ts | Компилиция TypeScript исходников |
| build:hbs | Копирование шаблонов в dist/ |
| ci:heroku:build | Сборка Docker-образа в Circle CI |
| ci:heroku:login | Авторизация в Heroku из Circle CI |
| ci:heroku:push | Отправка образа в Heroku из Circle CI |
| ci:heroku:release | Запуск контейнера с приложением в Heroku из Circle CI |
| ci:surge | Отправка статик в Surge из Circle CI |
| deps:all | Установка всех зависимостей |
| deps:production | Установка зависимостей, ноебходимых только для работы приложения |
| docker:build | Локальная сборка Docker-образа |
| docker:run | Локальный запуск контейнера с приложением |
| heroku:login | Авторизация в Heroku |
| heroku:push | Сборка и отправка образа в Heroku |
| heroku:release | Запуск контейнера с приложением в Heroku |
| heroku:open | Открыть браузер с приложение в Heroku |
| heroku | Деплой приложения в Heroku |
| lint | Запуск всех проверок |
| lint:css | Проверка css файлов |
| lint:deps | Проверка зависимостей |
| lint:es | Проверка TypeScript файлов |
| lint:ts | Проверка TypeScript файлов |
| start | Старт приложения |
| surge | Деплой приложения в Surge |