"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Implantando o aplicativo NestJS usando Vercel e Supabase

Implantando o aplicativo NestJS usando Vercel e Supabase

Publicado em 2024-11-12
Navegar:212

Entenda que a implantação no Vercel é bastante fácil, no entanto, existem algumas configurações que você precisa levar em consideração durante a implantação.

Pré-requisitos

  • Projeto NestJS conectado e funcionando corretamente localmente no ambiente de desenvolvimento com PostgreSQL
  • Conta Vercel para implantação
  • Conta Supabase (estamos configurando nosso banco de dados PostgreSQL aqui)

Vamos começar com a configuração do Supabase, considerando que seu aplicativo NestJS está pronto para implantação.

Conta Supabase

Supabase é uma alternativa de código aberto ao Firebase com suporte completo e configuração perfeita do seu banco de dados PostgreSQL, e também fornece recursos adicionais, como autenticação, armazenamento, etc.

Configure uma nova conta no Supabase e crie um novo projeto na conta.

Deploying NestJS Application using Vercel and Supabase

Assim que a configuração for concluída, clique no botão conectar na página Página inicial. Isso mostrará diferentes opções para conectar o banco de dados ao seu projeto

Deploying NestJS Application using Vercel and Supabase

Teste a conexão em seus locais com as credenciais fornecidas para garantir que tudo esteja funcionando perfeitamente.

NOTA: Certifique-se de que as credenciais não sejam expostas e armazenadas em seu arquivo .env (acredito que você já saiba disso?)

A seguir, vamos configurar nossa conta Vercel e implantar o projeto

Vercel

Normalmente, Vercel é conhecido principalmente por ser usado para implantação de aplicativos front-end, no entanto, também pode ser usado para implantar projetos de back-end.

PS: Use um provedor de serviços adequado se estiver trabalhando em um projeto de médio a grande porte para suas implantações de back-end.

Na sua conta Vercel, crie um novo projeto e conecte-se ao seu repositório Git. Importe seu arquivo .env e clique no botão Implantar.

Deploying NestJS Application using Vercel and Supabase

Voila, é isso ???.
...

Problemas comuns provavelmente encontrados

# Erro: Nenhum diretório de saída chamado "public"

Deploying NestJS Application using Vercel and Supabase

Este é um erro comum porque o Vercel precisa conhecer seu diretório de saída durante o processo de construção. Para corrigir isso, basta adicionar um arquivo version.json e copiar isto:

{
  "version": 2,

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

Execute a implantação novamente e pronto

...

# Erro: Esta função sem servidor travou

Deploying NestJS Application using Vercel and Supabase

No meu caso, foi por causa de um erro de módulo não encontrado

Deploying NestJS Application using Vercel and Supabase

...
Existem várias maneiras de corrigir esse problema:

Método 1 (Substitua todas as suas importações pelo caminho relativo)

De

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

para

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

...

Método 2 (modifique seu arquivo vercel.json e arquivo .gitignore)

Acabei optando por esse método porque não precisava limitar meu aplicativo a usar apenas importações de caminho relativo.

Então, modifique o vercel.json para este

{
  "version": 2,

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

Vá para o arquivo .gitignore e remova /dist.

Execute uma nova implantação e pronto.

Boa codificação! ?

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/abayomijohn273/deploying-nestjs-application-using-vercel-and-supabase-3n7m?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3