„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Bereitstellen einer NestJS-Anwendung mit Vercel und Supabase

Bereitstellen einer NestJS-Anwendung mit Vercel und Supabase

Veröffentlicht am 12.11.2024
Durchsuche:224

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 auf Ihren lokalen Geräten 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: Verwenden 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 ist es???.
...

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"]
    }
  ]
} 

Führen Sie die Bereitstellung erneut aus 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)

Aus

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

Zu

import { UsersService } from '../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.

Ändern Sie also die vercel.json in diese

{
  "version": 2,

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

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

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

Viel Spaß beim Codieren! ?

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/abayomijohn273/deploying-nestjs-application-using-vercel-and-supabase-3n7m?1 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3