Maison >interface Web >js tutoriel >Déploiement de l'application NestJS à l'aide de Vercel et Supabase

Déploiement de l'application NestJS à l'aide de Vercel et Supabase

DDD
DDDoriginal
2024-10-26 05:37:02771parcourir

Comprenez que le déploiement sur Vercel est assez simple, cependant, vous devez prendre en compte certaines configurations lors du déploiement.

Conditions préalables

  • Projet NestJS connecté et fonctionnant correctement localement dans l'environnement de développement avec PostgreSQL
  • Compte Vercel pour le déploiement
  • Compte Supabase (nous allons configurer notre base de données PostgreSQL ici)

Commençons par la configuration de Supabase en considérant que votre application NestJS est prête à être déployée.

Compte Supabase

Supabase est une alternative open source à Firebase avec une prise en charge complète et une configuration transparente de votre base de données PostgreSQL, et elle fournit également des fonctionnalités supplémentaires telles que l'authentification, le stockage, etc.

Créez un nouveau compte sur Supabase et créez un nouveau projet dans le compte.

Deploying NestJS Application using Vercel and Supabase

Une fois la configuration terminée, cliquez sur le bouton connecter sur la page Accueil. Cela vous montrera différentes options pour connecter la base de données à votre projet

Deploying NestJS Application using Vercel and Supabase

Testez la connexion sur vos locaux avec les informations d'identification fournies pour vous assurer que tout fonctionne parfaitement.

REMARQUE : Assurez-vous que les informations d'identification ne sont pas exposées et stockées dans votre fichier .env (je crois que vous le savez déjà ?)

Ensuite, créons notre compte Vercel et déployons le projet

Vercel

En règle générale, Vercel est principalement utilisé pour le déploiement d'applications front-end, cependant, il peut également être utilisé pour déployer des projets backend.

PS : Faites plutôt appel à un prestataire de services adapté si vous travaillez sur un projet de moyenne à grande échelle pour vos déploiements backend.

Sur votre compte Vercel, créez un nouveau projet et connectez-vous à votre référentiel Git. Importez votre fichier .env et cliquez sur le bouton Déployer.

Deploying NestJS Application using Vercel and Supabase

Voila, ça y est ???.
...

Problèmes courants probablement rencontrés

# Erreur : Aucun répertoire de sortie nommé "public"

Deploying NestJS Application using Vercel and Supabase

Il s'agit d'une erreur courante car Vercel a besoin de connaître votre répertoire de sortie pendant le processus de construction. Pour résoudre ce problème, ajoutez simplement un fichier versel.json et copiez ceci :

{
  "version": 2,

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

Exécutez à nouveau le déploiement et c'est tout

...

# Erreur : Cette fonction sans serveur est tombée en panne

Deploying NestJS Application using Vercel and Supabase

Dans mon cas, c'était à cause d'une erreur module non trouvé

Deploying NestJS Application using Vercel and Supabase

...
Il existe plusieurs façons de résoudre ce problème :

Méthode 1 (Remplacez toutes vos importations par un chemin relatif)

De

{
  "version": 2,

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

à

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

...

Méthode 2 (Modifiez votre fichier vercel.json et votre fichier .gitignore)

J'ai finalement opté pour cette méthode car je n'avais pas besoin de limiter mon application à l'utilisation uniquement d'importations de chemins relatifs.

Alors, modifiez le vercel.json par ceci

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

Allez dans votre fichier .gitignore et supprimez /dist.

Exécutez un nouveau déploiement et c'est tout.

Bon codage ! ?

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn