Caching-Konfigurationen zur Reduzierung von Serverless-Aufrufen für Nuxt-Apps auf Vercel
May 1, 2026
0
Computing/SoftwareRelated Video
36:54▲ Community Session: Nuxt auf Vercel
Vercel
Comments (0)
Log in to leave a comment
No posts yet
36:54Vercel
Log in to leave a comment
No posts yet
Die Nitro-Engine von Nuxt scheint zwar überall reibungslos zu funktionieren, doch sobald sie in der Vercel Edge Runtime läuft, ändert sich die Situation grundlegend. Bibliotheken wie sharp oder bcrypt, die lokal einwandfrei liefen, werfen nach dem Deployment sofort 500er-Fehler aus, da Vercel Edge den Zugriff auf Standard-Node.js-Module blockiert. Ich führe daher grundsätzlich npx vercel build aus, bevor ich auf den Deployment-Button klicke. Ohne eine vorherige Simulation der Linux-basierten Umgebung ist die Wahrscheinlichkeit hoch, dass man sich nachts um 3 Uhr mit Laufzeitfehlern herumschlagen muss.
Für einen stabilen Betrieb ist es sicherer, in der nuxt.config.ts das Preset explizit auf das normale vercel statt vercel-edge zu setzen. Es ist nicht notwendig, jede API über Edge laufen zu lassen. Standardisieren Sie zudem den Zugriff auf Umgebungsvariablen über Nitros useRuntimeConfig, anstatt process.env direkt aufzurufen. Diese kleine Gewohnheit beseitigt 80 % der Laufzeitfehler, die nach dem Deployment auftreten.
Der Hauptverursacher hoher Vercel-Rechnungen sind die Ausführungszeit und die Anzahl der Aufrufe von Serverless Functions. Die in Nitro 3 verfügbaren routeRules sind das mächtigste Werkzeug, um diese Kosten physisch zu senken. Wenn man die stale-while-revalidate (SWR) Strategie richtig einsetzt, wird die Funktion bei 10.000 API-Anfragen tatsächlich nur ein einziges Mal ausgeführt. Das ist ein kluger Weg, um den Nutzern schnelle Antworten im Millisekundenbereich zu liefern und gleichzeitig den Geldbeutel zu schonen.
Hier sind die konkreten Einstellungen, um Kosten um über 40 % zu senken:
routeRules-Objekt der nuxt.config.ts die zu cachenden Pfade fest.swr: 3600 zum entsprechenden Pfad hinzu, um den Hintergrund-Aktualisierungsmodus für eine Stunde zu aktivieren.cache-Option maxAge und staleMaxAge, um festzulegen, wie lange das CDN den Cache vorhalten soll.Auf diese Weise werden Sie im Vercel-Dashboard beobachten können, wie die Anzahl der Serverless-Function-Aufrufe steil nach unten geht.
Hydration-Fehler, die auftreten, wenn das vom Server generierte HTML auf das clientseitige JavaScript trifft, machen die App instabil. Nuxt 4 wurde so konzipiert, dass bei useAsyncData-Aufrufen standardmäßig deep: false verwendet wird, um dies zu beheben. Indem auf unnötiges Objekt-Tracking verzichtet wird, wird Speicher gespart und der Serverstatus sicher an den Client übergeben.
Wenden Sie diese drei Regeln an, um Dateninkonsistenzen zu beheben und die Payload-Größe zu reduzieren:
pick-Option, um nur die Key-Werte auszuwählen, die für das Template-Rendering unbedingt erforderlich sind. Allein dadurch kann die Payload-Größe um bis zu 50 % reduziert werden.useId(), um die Identifikatoren zwischen Server und Client zu synchronisieren.<NuxtTime>-Komponente, um sie basierend auf dem Browser-Locale zu verarbeiten.Wenn ein Projekt wächst, können selbst die 8.192 MB Speicher, die der Vercel-Build-Container bietet, knapp werden. Genauer gesagt ist die Standard-Heap-Größe von Node.js oft kleiner als der verfügbare Speicher eingestellt, was zu häufigem Garbage Collection und schließlich zum Abbruch des Builds führt.
Wenden Sie diese Einstellungen sofort an, um die Build-Geschwindigkeit zu erhöhen und Deployment-Fehler zu vermeiden:
NODE_OPTIONS="--max-old-space-size=4096" zu den Umgebungsvariablen des Vercel-Projekts hinzu. Allein das Aufheben des Heap-Memory-Limits beseitigt Build-Engpässe.npx nuxt analyze aus, um zu prüfen, ob schwere serverseitige Abhängigkeiten in das Client-Bundle geraten sind, und isolieren Sie diese mit dem #server-Alias.server/middleware/, die bei jeder Anfrage ausgeführt wird, in Event-Handler für spezifische Pfade verschieben.Sobald diese Umgebungskonfiguration abgeschlossen ist, verkürzt sich die Wartezeit in der CI/CD-Pipeline und die Rate der Deployment-Fehler sinkt erheblich.