«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Развертывание приложения NestJS с использованием Vercel и Supabase

Развертывание приложения NestJS с использованием Vercel и Supabase

Опубликовано 12 ноября 2024 г.
Просматривать:451

Поймите, что развертывание в Vercel довольно простое, однако есть некоторые настройки, которые необходимо учитывать во время развертывания.

Предварительные условия

  • Проект NestJS подключен и правильно работает локально в среде разработки с PostgreSQL
  • Учетная запись Vercel для развертывания
  • Учетная запись Supabase (здесь мы будем настраивать нашу базу данных PostgreSQL)

Давайте начнем с настройки Supabase, учитывая, что ваше приложение NestJS готово к развертыванию.

Супабазовая учетная запись

Supabase — это альтернатива Firebase с открытым исходным кодом, которая обеспечивает полную поддержку и плавную настройку вашей базы данных PostgreSQL, а также предоставляет дополнительные функции, такие как аутентификация, хранение и т. д.

Настройте новую учетную запись в Supabase и создайте в ней новый проект.

Deploying NestJS Application using Vercel and Supabase

После завершения настройки нажмите кнопку подключиться на Главной странице. Это покажет вам различные варианты подключения БД к вашему проекту

Deploying NestJS Application using Vercel and Supabase

Протестируйте соединение с местными жителями, используя предоставленные учетные данные, чтобы убедиться, что все работает отлично.

ПРИМЕЧАНИЕ. Убедитесь, что учетные данные не раскрыты и не сохранены в вашем файле .env (думаю, вы это уже знаете?)

Далее давайте настроим нашу учетную запись Vercel и развернем проект

Версель

Как правило, Vercel в основном используется для развертывания интерфейсных приложений, однако его также можно использовать для развертывания серверных проектов.

PS: Вместо этого используйте подходящего поставщика услуг, если вы работаете над средне- и крупномасштабным проектом для развертывания серверной части.

В своей учетной записи Vercel создайте новый проект и подключитесь к своему репозиторию Git. Импортируйте файл .env и нажмите кнопку Развернуть.

Deploying NestJS Application using Vercel and Supabase

Вуаля, всё ???.
...

Часто встречающиеся проблемы

# Ошибка: нет выходного каталога с именем «public».

Deploying NestJS Application using Vercel and Supabase

Это распространенная ошибка, поскольку Vercel необходимо знать ваш выходной каталог во время процесса сборки. Чтобы это исправить, просто добавьте файл versel.json и скопируйте его:

{
  "version": 2,

  "builds": [
    {
      "src": "src/main.ts",
      "use": "@vercel/node"
    }
  ],
  "routes": [
    {
      "src": "/(.*)",
      "dest": "src/main.ts",
      "methods": ["GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS"]
    }
  ]
} 

Запустите развертывание еще раз и все

...

# Ошибка: эта бессерверная функция завершилась сбоем

Deploying NestJS Application using Vercel and Supabase

В моем случае это произошло из-за ошибки «модуль не найден»

Deploying NestJS Application using Vercel and Supabase

...
Есть несколько способов решить эту проблему:

Способ 1 (замените весь импорт относительным путем)

От

import { UsersService } from 'src/users/users.service';

к

import { UsersService } from '../users/users.service';

...

Способ 2 (измените файл vercel.json и файл .gitignore)

В конечном итоге я выбрал этот метод, потому что мне не нужно было ограничивать свое приложение использованием только импорта по относительному пути.

Итак, измените vercel.json на это

{
  "version": 2,

  "builds": [
    {
      "src": "dist/main.js",
      "use": "@vercel/node"
    }
  ],
  "routes": [
    {
      "src": "/(.*)",
      "dest": "dist/main.js",
      "methods": ["GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS"]
    }
  ]
}

Перейдите к файлу .gitignore и удалите /dist.

Запустите новое развертывание и все.

Удачного программирования! ?

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/abayomijohn273/deploying-nestjs-application-using-vercel-and-supabase-3n7m?1 Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3