"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Implementación de la aplicación NestJS usando Vercel y Supabase

Implementación de la aplicación NestJS usando Vercel y Supabase

Publicado el 2024-11-12
Navegar:192

Comprenda que implementar en Vercel es bastante fácil; sin embargo, hay algunas configuraciones que debe tener en cuenta durante la implementación.

Requisitos previos

  • Proyecto NestJS conectado y funcionando correctamente localmente en el entorno de desarrollo con PostgreSQL
  • Cuenta Vercel para implementación
  • Cuenta Supabase (estaremos configurando nuestra base de datos PostgreSQL aquí)

Comencemos con la configuración de Supabase considerando que su aplicación NestJS está lista para su implementación.

Cuenta Supabase

Supabase es una alternativa de Firebase de código abierto con soporte completo y configuración perfecta de su base de datos PostgreSQL, y también proporciona funciones adicionales como autenticación, almacenamiento, etc.

Configure una nueva cuenta en Supabase y cree un nuevo proyecto en la cuenta.

Deploying NestJS Application using Vercel and Supabase

Una vez completada la configuración, haga clic en el botón conectar en la página Inicio. Esto le mostrará diferentes opciones para conectar la base de datos a su proyecto

Deploying NestJS Application using Vercel and Supabase

Pruebe la conexión en sus locales con las credenciales proporcionadas para asegurarse de que todo funcione perfectamente.

NOTA: Asegúrese de que las credenciales no estén expuestas y almacenadas en su archivo .env (¿creo que ya lo sabe?)

A continuación, configuremos nuestra cuenta de Vercel e implementemos el proyecto

Vercel

Normalmente, se sabe que Vercel se usa principalmente para la implementación de aplicaciones front-end; sin embargo, también se puede usar para implementar proyectos backend.

PD: Utilice un proveedor de servicios adecuado si está trabajando en un proyecto de mediana a gran escala para sus implementaciones backend.

En su cuenta de Vercel, cree un nuevo proyecto y conéctese a su repositorio Git. Importe su archivo .env y haga clic en el botón Implementar.

Deploying NestJS Application using Vercel and Supabase

Voila, eso es todo???.
...

Problemas comunes que probablemente se encuentren

# Error: No hay directorio de salida llamado "público"

Deploying NestJS Application using Vercel and Supabase

Este es un error común porque Vercel necesita conocer su directorio de salida durante el proceso de compilación. Para solucionar este problema, simplemente agregue un archivo versel.json y copie esto:

{
  "version": 2,

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

Ejecute la implementación nuevamente y eso es todo

...

# Error: esta función sin servidor falló

Deploying NestJS Application using Vercel and Supabase

En mi caso, fue por un error de módulo no encontrado

Deploying NestJS Application using Vercel and Supabase

...
Hay varias formas de solucionar este problema:

Método 1 (Reemplace todas sus importaciones con una ruta relativa)

De

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

a

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

...

Método 2 (Modifique su archivo vercel.json y su archivo .gitignore)

Finalmente opté por este método porque no necesitaba limitar mi aplicación al uso únicamente de importaciones de rutas relativas.

Entonces, modifica el vercel.json a esto

{
  "version": 2,

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

Vaya a su archivo .gitignore y elimine /dist.

Ejecuta una nueva implementación y eso es todo.

¡Feliz codificación! ?

Declaración de liberación Este artículo se reproduce en: https://dev.to/abayomijohn273/deploying-nestjs-application-using-vercel-and-supabase-3n7m?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3