Heim  >  Artikel  >  Web-Frontend  >  Bereitstellen einer NestJS-Anwendung mit Vercel und Supabase

Bereitstellen einer NestJS-Anwendung mit Vercel und Supabase

DDD
DDDOriginal
2024-10-26 05:37:02712Durchsuche

Beachten Sie, dass die Bereitstellung auf Vercel recht einfach ist. Es gibt jedoch einige Einstellungen, die Sie bei der Bereitstellung berücksichtigen müssen.

Voraussetzungen

  • NestJS-Projekt ist lokal in der Entwicklungsumgebung mit PostgreSQL verbunden und funktioniert ordnungsgemäß
  • Vercel-Konto für die Bereitstellung
  • Supabase-Konto (hier richten wir unsere PostgreSQL-Datenbank ein)

Beginnen wir mit der Supabase-Einrichtung unter Berücksichtigung der Tatsache, dass Ihre NestJS-App für die Bereitstellung bereit ist.

Supabase-Konto

Supabase ist eine Open-Source-Firebase-Alternative mit vollständiger Unterstützung und nahtloser Konfiguration Ihrer PostgreSQL-Datenbank und bietet außerdem zusätzliche Funktionen wie Authentifizierung, Speicherung usw.

Richten Sie ein neues Konto auf Supabase ein und erstellen Sie ein neues Projekt im Konto.

Deploying NestJS Application using Vercel and Supabase

Sobald die Einrichtung abgeschlossen ist, klicken Sie auf der Seite Startseite auf die Schaltfläche Verbinden. Dies zeigt Ihnen verschiedene Möglichkeiten, die DB mit Ihrem Projekt zu verbinden

Deploying NestJS Application using Vercel and Supabase

Testen Sie die Verbindung bei Ihren Einheimischen mit den bereitgestellten Anmeldeinformationen, um sicherzustellen, dass alles einwandfrei funktioniert.

HINWEIS: Stellen Sie sicher, dass die Anmeldeinformationen nicht offengelegt und in Ihrer .env-Datei gespeichert werden (ich glaube, Sie wissen das bereits?)

Als nächstes richten wir unser Vercel-Konto ein und stellen das Projekt bereit

Vercel

Typischerweise wird Vercel hauptsächlich für die Bereitstellung von Front-End-Apps verwendet, es kann jedoch auch für die Bereitstellung von Backend-Projekten verwendet werden.

PS: Nutzen Sie stattdessen einen geeigneten Dienstleister, wenn Sie an einem mittelgroßen bis großen Projekt für Ihre Backend-Bereitstellungen arbeiten.

Erstellen Sie in Ihrem Vercel-Konto ein neues Projekt und stellen Sie eine Verbindung zu Ihrem Git-Repository her. Importieren Sie Ihre .env-Datei und klicken Sie auf die Schaltfläche Bereitstellen.

Deploying NestJS Application using Vercel and Supabase

Voila, das war's???.
...

Häufige Probleme sind wahrscheinlich aufgetreten

# Fehler: Kein Ausgabeverzeichnis mit dem Namen „public“

Deploying NestJS Application using Vercel and Supabase

Dies ist ein häufiger Fehler, da Vercel während des Erstellungsprozesses Ihr Ausgabeverzeichnis kennen muss. Um dies zu beheben, fügen Sie einfach eine versel.json-Datei hinzu und kopieren Sie Folgendes:

{
  "version": 2,

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

Bereitstellung erneut ausführen und das ist alles

...

# Fehler: Diese serverlose Funktion ist abgestürzt

Deploying NestJS Application using Vercel and Supabase

In meinem Fall lag es an einem Fehler, bei dem das Modul nicht gefunden wurde

Deploying NestJS Application using Vercel and Supabase

...
Es gibt mehrere Möglichkeiten, dieses Problem zu beheben:

Methode 1 (Ersetzen Sie alle Ihre Importe durch den relativen Pfad)

Von

{
  "version": 2,

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

zu

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

...

Methode 2 (Ändern Sie Ihre vercel.json-Datei und Ihre .gitignore-Datei)

Ich habe mich schließlich für diese Methode entschieden, weil ich meine App nicht darauf beschränken musste, nur relative Pfadimporte zu verwenden.

Also ändern Sie die vercel.json so

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

Gehen Sie zu Ihrer .gitignore-Datei und entfernen Sie /dist.

Führen Sie eine neue Bereitstellung aus und das ist alles.

Viel Spaß beim Codieren! ?

Das obige ist der detaillierte Inhalt vonBereitstellen einer NestJS-Anwendung mit Vercel und Supabase. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn