Vercel + Node.js
Vercel - это облачная платформа для разработки, развертывания и хостинга веб-приложений. Vercel позволяет размещать как фронтовые приложения, так и бэкенд-логику, написанную на Node.js. Развертывания через Vercel выполняются через репозитории Git с поддержкой репозиториев GitHub , GitLab и Bitbucket. Развертываниям автоматически присваивается поддомен в рамках vercel.app домена, хотя Vercel предлагает поддержку и пользовательских доменов. Есть возможность создания бесплатного аккаунта с ограничениями по ресурсам сервиса.
Регистрация в сервисе
Всё просто - вход по Github аккаунту. Это позволит получить доступ ко всем своим репозиториям для дальнейшего развертывания своих проектов.
Добавление нового проекта из Github
- Открываем дэшбоард-панель и жмём на Add new... -> Project
- Выбираем свою Github-репу и жмём Import (видны даже приватные проекты)
- Для приложения на ноде обязательно выбрать Framework Preset = Other
- Build and Output Settings оставляем без изменений
- Можно сразу настроить переменные окружения в Environment Variables (можно потом)
- Нажимаем Deploy
Добавление файла vercel.json
Мы загружаем написанный на чистой ноде (ну лан на Express...) проект, файл package.json которого выглядит так:
Поэтому нам необходимо указать конфиг для сервиса, чтобы бэк собрался и заработал. Делается это при помощи добавления в корень проекта настроечного файла vercel.json с таким кодом:
{
"version": 2,
"builds": [
{
"src": "./index.js",
"use": "@vercel/node"
}
],
"routes": [
{
"src": "/.*",
"dest": "index.js"
}
]
}
Настройки добавленного проекта
Убрать лишний деплой и комментарии в github
По умолчанию vercel начинает деплоить в продакшн любой MR или коммит в master-ветку, а также делает всякие промежуточные тестовые preview-деплои. Для учебного проекта это излишне, поэтому я обычно отключаю данный функционал таким образом:
- Открываем проект, далее жмём Settings
- Отключаем флаги Pull Request Comments и Commit Comments
- Теперь у нас будет запускаться деплой только на коммиты в master-ветку (там же в настройках можно выбрать другую ветку в качестве Production Branch). Я обычно создаю PR из ветки develop -> master
- Теперь автодеплой в Github`е не добавляется в комментарии к PR, но сам деплой ветки master происходит!
Environment Variables
Также в настройках проекта можно добавить переменные окружения:
Redeploy проекта
На вкладке Deployments есть возможность в любой момент задеплоить в продакшн нужный билд:
Как делать понятные MR на Github
- Сначала по классике делаем MR из feature/ветки в develop. Тут подставляем просто краткое описание фичи в заголовок
- Потом делаем уже MR из ветки develop в ветку master. Копируем заголовок из предыдущего реквеста и добавляем приставку MR master | , а также делаем краткое описание того, что добавляем в главную ветку
- При принятии MR обязательно в название коммита добавляем приставку MR#11 from develop | с номером мёрж запроса, так будет легче отследить на vercel какой выкатился билд
- Идем на vercel и наблюдаем deploy последнего коммита