Vercel + Node.js

Vercel - это облачная платформа для разработки, развертывания и хостинга веб-приложений. Vercel позволяет размещать как фронтовые приложения, так и бэкенд-логику, написанную на Node.js. Развертывания через Vercel выполняются через репозитории Git с поддержкой репозиториев GitHub , GitLab и Bitbucket. Развертываниям автоматически присваивается поддомен в рамках vercel.app домена, хотя Vercel предлагает поддержку и пользовательских доменов. Есть возможность создания бесплатного аккаунта с ограничениями по ресурсам сервиса.

Регистрация в сервисе

Всё просто - вход по Github аккаунту. Это позволит получить доступ ко всем своим репозиториям для дальнейшего развертывания своих проектов.

Добавление нового проекта из Github

  1. Открываем дэшбоард-панель и жмём на Add new... -> Project

1.jpg

  1. Выбираем свою Github-репу и жмём Import (видны даже приватные проекты)

2.jpg

  1. Для приложения на ноде обязательно выбрать Framework Preset = Other
  2. Build and Output Settings оставляем без изменений
  3. Можно сразу настроить переменные окружения в Environment Variables (можно потом)
  4. Нажимаем Deploy

3.jpg

Добавление файла vercel.json

Мы загружаем написанный на чистой ноде (ну лан на Express...) проект, файл package.json которого выглядит так:

Screenshot_20231204_01.jpg

Поэтому нам необходимо указать конфиг для сервиса, чтобы бэк собрался и заработал. Делается это при помощи добавления в корень проекта настроечного файла vercel.json с таким кодом:

{
  "version": 2,
  "builds": [
    {
      "src": "./index.js",
      "use": "@vercel/node"
    }
  ],
  "routes": [
    {
      "src": "/.*",
      "dest": "index.js"
    }
  ]
}

Настройки добавленного проекта

Убрать лишний деплой и комментарии в github

По умолчанию vercel начинает деплоить в продакшн любой MR или коммит в master-ветку, а также делает всякие промежуточные тестовые preview-деплои. Для учебного проекта это излишне, поэтому я обычно отключаю данный функционал таким образом:

  1. Открываем проект, далее жмём Settings

Screenshot_20231204_02.jpg

  1. Отключаем флаги Pull Request Comments и Commit Comments

Screenshot_20231204_02-1.jpg

  1. Теперь у нас будет запускаться деплой только на коммиты в master-ветку (там же в настройках можно выбрать другую ветку в качестве Production Branch). Я обычно создаю PR из ветки develop -> master
  2. Теперь автодеплой в Github`е не добавляется в комментарии к PR, но сам деплой ветки master происходит!

Screenshot_20231204_02-2.jpg

Environment Variables

Также в настройках проекта можно добавить переменные окружения:

Screenshot_20231204_02-3.jpg

Redeploy проекта

На вкладке Deployments есть возможность в любой момент задеплоить в продакшн нужный билд:

Screenshot_20231204_02-4.jpg

Как делать понятные MR на Github

  1. Сначала по классике делаем MR из feature/ветки в develop. Тут подставляем просто краткое описание фичи в заголовок

Screenshot_20231206_17.jpg

  1. Потом делаем уже MR из ветки develop в ветку master. Копируем заголовок из предыдущего реквеста и добавляем приставку MR master | , а также делаем краткое описание того, что добавляем в главную ветку

Screenshot_20231206_17-2.jpg

  1. При принятии MR обязательно в название коммита добавляем приставку MR#11 from develop | с номером мёрж запроса, так будет легче отследить на vercel какой выкатился билд

Screenshot_20231206_17-3.jpg

  1. Идем на vercel и наблюдаем deploy последнего коммита

Screenshot_20231206_17-1.jpg


How to deploy a Node/Express App to Vercel - dev.to

openImgPic