Задеплоили на YandexCloud
- Главная - /
- Логин - /login
- Регистрация - /registration
- Форум - /forum
- Игра - /game
- Лидерборд - /leaderboard
- Профиль - /profile
- Ошибка - несуществующий роут
В первую очередь в корень проекта положить dev.env с переменными окружения
- В корне запустить docker-compose up postgres pgadmin - поднимутся контейнеры с базой и ее админкой (если нет образов, то их надо сначала собрать docker-compose build postgres pgadmin)
- В ./app запустить npm run dev (В другом терминале)
- В корне запустить docker-compose build; docker-compose up;
Собирает образы и поднимает 3 контейнера, с приложением (собранным в продакшн режиме), с базой и админкой базы.
- npm run dev - Собирает сервер, запускает его, а на сервере собирается клиент с HMR (в папку dist это не попадает)
1.1. npm run dev:webpack - Собирает сервер
1.2. npm run dev:server - Запускает сервер, собирает клиент с HMR (в папку dist это не попадает) - npm run build - Собирает сервер и клиент в режиме production в папки dist и distServer
- npm start - Запускает сервер из собранного бандла без hmr, клиент подтягивает из папки dist
- npm run clean - Удаляет dist и distServer
- npm run eslint:fix - запуск eslint с автофиксом
- npm run stylelint:fix - запуск линтера стилей с автофиксом
- npm run test - запуск тестов
- *Для переключения на версию ноды из .nvmrc нужно запустить nvm use в корне проекта
- Вы должны быть зарегистрированы как пользователь на ВМ в облаке. Кидайте мне ваш публичный SSH ключ - я создам вам пользователя ВМ и добавлю ключ в разрешенные, чтобы вы смогли заходить удаленно по ssh.
- В файлах
/cloud/docker-publish.sh
,/cloud/docker-reload.sh
. Поменяйте переменную$USER
на вашего пользователя ВМ - Включите докер.
cd app
npm run docker:publish
:- собирает локально все докер-образы
- отправляет все докер-образы на удаленный репозиторий нашего ЯндексОблака с пометкой latest
- обновляет образы на удаленном репозитории.
npm run docker:reload
- останавливает текущие контейнеры на ВМ в облаке, запускает контейнеры заново.
Также эти скрипты можно запускать без npm: bash cloud/docker-publish.sh
, bash cloud/docker-reload.sh
PS: ./cloud/docker-compose.yaml
- это шаблон для сборки на сервере. Там мы не собираем образы, а стягиваем из репозиториев. Этот файл я уже положил в ВМ в /var/local/, он вызывается скриптом docker-reload. Здесь я его положил, чтобы было понятно, что происходит на сервере. Локально он не запускается.
Автоматический деплой на виртуальную машину запускается каждый раз после мержа в main
ветку.
- Подключаем линтеры к своей IDE, чтобы автоформатирование работало у всех одинаково
- Для описания пропсов и стейта компонентов используем типы (не интерфейсы), называем их
${componentName}State
и${componentName}Props
- Всегда используем именованные экспорты и не используем дефолтные
main - основная ветка. От нее отходят ветки спринтов (например ветка sprint5)
sprint5 - ветка спринта, от нее создаем ветки задач 5-го спринта
sprint5-build-marat5 - ветка задачи. В названии указываем спринт-ёмкое_имя_задачи-юзернейм
Перед тем как делать пр в спринт обязательно делаем ребейс
Чтобы смерджить в спринт нужно 2 аппрува
Перед тем как влить ветку в спринт делаем сквош коммитов, чтобы у нас был один коммит на задачу
В папке src/locales/${lang}
живут .json файлы с переводами строк. При добавлении новой строки нужно проверить нет ли ее в этих файлах, и если нет, то добавить. Пример того как получить строки есть на странице Форум.