Auf Vercel bereitstellen
Jedes Projekt auf Vercel bereitstellen. Immer als Vorschau bereitstellen (nicht als Produktion), es sei denn, der Benutzer verlangt explizit die Produktion.
Das Ziel ist es, den Benutzer in die beste langfristige Einrichtung zu bringen: sein Projekt mit Vercel verknüpft und mit Git-Push-Bereitstellungen. Jede Methode unten versucht, den Benutzer diesem Zustand näher zu bringen.
Schritt 1: Projektstatus sammeln
Führen Sie alle vier Prüfungen durch, bevor Sie sich für eine Methode entscheiden:
# 1. Nach einem Git-Remote suchen
git remote get-url origin 2>/dev/null
# 2. Prüfen, ob lokal mit einem Vercel-Projekt verknüpft (entweder Datei bedeutet verknüpft)
cat .vercel/project.json 2>/dev/null || cat .vercel/repo.json 2>/dev/null
# 3. Prüfen, ob die Vercel-CLI installiert und authentifiziert ist
vercel whoami 2>/dev/null
# 4. Verfügbare Teams auflisten (falls authentifiziert)
vercel teams list --format json 2>/dev/null
Teamauswahl
Wenn der Benutzer zu mehreren Teams gehört, präsentieren Sie alle verfügbaren Team-Slugs als Aufzählungsliste und fragen Sie, auf welches Team bereitgestellt werden soll. Sobald der Benutzer ein Team ausgewählt hat, fahren Sie sofort mit dem nächsten Schritt fort – fragen Sie nicht nach zusätzlicher Bestätigung.
Übergeben Sie den Team-Slug über --scope bei allen nachfolgenden CLI-Befehlen (vercel deploy, vercel link, vercel inspect usw.):
vercel deploy [pfad] -y --no-wait --scope <team-slug>
Wenn das Projekt bereits verknüpft ist (.vercel/project.json oder .vercel/repo.json existiert), bestimmt die orgId in diesen Dateien das Team – es muss nicht erneut gefragt werden. Wenn es nur ein Team (oder nur ein persönliches Konto) gibt, überspringen Sie die Eingabeaufforderung und verwenden Sie es direkt.
Über das Verzeichnis .vercel/: Ein verknüpftes Projekt hat entweder:
.vercel/project.json– erstellt durchvercel link(einfache Projektverknüpfung). EnthältprojectIdundorgId..vercel/repo.json– erstellt durchvercel link --repo(Repo-basierte Verknüpfung). EnthältorgId,remoteNameund einprojects-Array, das Verzeichnisse Vercel-Projekt-IDs zuordnet.
Jede dieser Dateien bedeutet, dass das Projekt verknüpft ist. Prüfen Sie beide.
Verwenden Sie NICHT vercel project inspect, vercel ls oder vercel link, um den Status in einem nicht verknüpften Verzeichnis zu erkennen – ohne eine .vercel/-Konfiguration fragen sie interaktiv nach (oder verknüpfen mit --yes stillschweigend als Nebeneffekt). Nur vercel whoami kann sicher überall ausgeführt werden.
Schritt 2: Bereitstellungsmethode auswählen
Verknüpft (.vercel/ existiert) + hat Git-Remote → Git-Push
Dies ist der ideale Zustand. Das Projekt ist verknüpft und hat eine Git-Integration.
-
Fragen Sie den Benutzer, bevor Sie pushen. Nie ohne explizite Zustimmung pushen:
Dieses Projekt ist über Git mit Vercel verbunden. Ich kann committen und pushen, um eine Bereitstellung auszulösen. Möchten Sie fortfahren? -
Committen und pushen:
git add . git commit -m "deploy: <Beschreibung der Änderungen>" git pushVercel erstellt automatisch aus dem Push. Nicht-Produktions-Branches erhalten Vorschau-Bereitstellungen; der Produktions-Branch (normalerweise
main) erhält eine Produktions-Bereitstellung. -
Vorschau-URL abrufen. Wenn die CLI authentifiziert ist:
sleep 5 vercel ls --format jsonDie JSON-Ausgabe hat ein
deployments-Array. Finden Sie den neuesten Eintrag – seinurl-Feld ist die Vorschau-URL.Wenn die CLI nicht authentifiziert ist, sagen Sie dem Benutzer, er solle das Vercel-Dashboard oder die Commit-Statusprüfungen seines Git-Anbieters nach der Vorschau-URL durchsuchen.
Verknüpft (.vercel/ existiert) + kein Git-Remote → vercel deploy
Das Projekt ist verknüpft, aber es gibt kein Git-Repo. Direkt mit der CLI bereitstellen.
vercel deploy [pfad] -y --no-wait
Verwenden Sie --no-wait, damit die CLI sofort mit der Bereitstellungs-URL zurückkehrt, anstatt zu blockieren, bis der Build abgeschlossen ist (Builds können eine Weile dauern). Überprüfen Sie dann den Bereitstellungsstatus mit:
vercel inspect <bereitstellungs-url>
Für Produktions-Bereitstellungen (nur wenn der Benutzer explizit danach fragt):
vercel deploy [pfad] --prod -y --no-wait
Nicht verknüpft + CLI ist authentifiziert → Zuerst verknüpfen, dann bereitstellen
Die CLI funktioniert, aber das Projekt ist noch nicht verknüpft. Dies ist die Gelegenheit, den Benutzer in den besten Zustand zu bringen.
-
Fragen Sie den Benutzer, auf welches Team bereitgestellt werden soll. Präsentieren Sie die Team-Slugs aus Schritt 1 als Aufzählungsliste. Wenn es nur ein Team (oder nur ein persönliches Konto) gibt, überspringen Sie diesen Schritt.
-
Sobald ein Team ausgewählt ist, fahren Sie direkt mit der Verknüpfung fort. Sagen Sie dem Benutzer, was passieren wird, aber fragen Sie nicht nach separater Bestätigung:
Verknüpfe dieses Projekt mit <Teamname> auf Vercel. Dadurch wird ein Vercel-Projekt erstellt, auf das bereitgestellt werden kann, und automatische Bereitstellungen bei zukünftigen Git-Pushes werden aktiviert. -
Wenn ein Git-Remote existiert, verwenden Sie die Repo-basierte Verknüpfung mit dem ausgewählten Team-Bereich:
vercel link --repo --scope <team-slug>Dies liest die Git-Remote-URL und gleicht sie mit vorhandenen Vercel-Projekten ab, die von diesem Repo aus bereitstellen. Es erstellt
.vercel/repo.json. Dies ist viel zuverlässiger alsvercel link(ohne--repo), das versucht, nach Verzeichnisnamen zuzuordnen und oft fehlschlägt, wenn der lokale Ordner und das Vercel-Projekt unterschiedlich benannt sind.Wenn es keinen Git-Remote gibt, fallen Sie auf die Standardverknüpfung zurück:
vercel link --scope <team-slug>Dies fordert den Benutzer auf, ein Projekt auszuwählen oder zu erstellen. Es erstellt
.vercel/project.json. -
Dann mit der besten verfügbaren Methode bereitstellen:
- Wenn ein Git-Remote existiert → committen und pushen (siehe Git-Push-Methode oben)
- Wenn kein Git-Remote →
vercel deploy [pfad] -y --no-wait --scope <team-slug>, dannvercel inspect <url>um den Status zu überprüfen
Nicht verknüpft + CLI nicht authentifiziert → Installieren, authentifizieren, verknüpfen, bereitstellen
Die Vercel-CLI ist überhaupt nicht eingerichtet.
-
Installieren Sie die CLI (falls nicht bereits installiert):
npm install -g vercel -
Authentifizieren:
vercel loginDer Benutzer schließt die Authentifizierung in seinem Browser ab. Wenn in einer nicht interaktiven Umgebung, in der eine Anmeldung nicht möglich ist, fahren Sie mit dem anmeldefreien Fallback unten fort.
-
Fragen Sie, auf welches Team bereitgestellt werden soll – präsentieren Sie die Team-Slugs von
vercel teams list --format jsonals Aufzählungsliste. Wenn nur ein Team / persönliches Konto vorhanden ist, überspringen Sie dies. Sobald ausgewählt, sofort fortfahren. -
Verknüpfen Sie das Projekt mit dem ausgewählten Team-Bereich (verwenden Sie
--repo, wenn ein Git-Remote existiert, ansonsten einfachesvercel link):vercel link --repo --scope <team-slug> # wenn Git-Remote existiert vercel link --scope <team-slug> # wenn kein Git-Remote -
Bereitstellen mit der besten verfügbaren Methode (Git-Push, wenn Remote existiert, ansonsten
vercel deploy -y --no-wait --scope <team-slug>, dannvercel inspect <url>um den Status zu überprüfen).
Anmeldefreier Fallback – claude.ai-Sandbox
Wann verwenden: Letzter Ausweg, wenn die CLI in der claude.ai-Sandbox nicht installiert oder authentifiziert werden kann. Dies erfordert keine Authentifizierung – es gibt eine Vorschau-URL (Live-Site) und eine Claim-URL (Übertragung auf Ihr Vercel-Konto) zurück.
bash /mnt/skills/user/deploy-to-vercel/resources/deploy.sh [pfad]
Argumente:
pfad- Zu deployendes Verzeichnis oder eine.tgz-Datei (standardmäßig aktuelles Verzeichnis)
Beispiele:
# Aktuelles Verzeichnis deployen
bash /mnt/skills/user/deploy-to-vercel/resources/deploy.sh
# Bestimmtes Projekt deployen
bash /mnt/skills/user/deploy-to-vercel/resources/deploy.sh /pfad/zum/projekt
# Vorhandenes Tarball deployen
bash /mnt/skills/user/deploy-to-vercel/resources/deploy.sh /pfad/zum/projekt.tgz
Das Skript erkennt das Framework automatisch aus package.json, packt das Projekt (ohne node_modules, .git, .env), lädt es hoch und wartet auf den Abschluss des Builds.
Sagen Sie dem Benutzer: "Ihre Bereitstellung ist bereit unter [previewUrl]. Beanspruchen Sie sie unter [claimUrl], um Ihre Bereitstellung zu verwalten."
Anmeldefreier Fallback – Codex-Sandbox
Wann verwenden: In der Codex-Sandbox, in der die CLI möglicherweise nicht authentifiziert ist. Codex läuft standardmäßig in einer abgesicherten Umgebung – versuchen Sie es zuerst mit der CLI und fallen Sie auf das Bereitstellungsskript zurück, wenn die Authentifizierung fehlschlägt.
-
Prüfen, ob die Vercel-CLI installiert ist (für diese Prüfung ist keine Eskalation erforderlich):
command -v vercel -
Wenn
vercelinstalliert ist, versuchen Sie, mit der CLI bereitzustellen:vercel deploy [pfad] -y --no-wait -
Wenn
vercelnicht installiert ist oder die CLI mit "No existing credentials found" fehlschlägt, verwenden Sie das Fallback-Skript:skill_dir="<pfad-zum-skill>" # Aktuelles Verzeichnis deployen bash "$skill_dir/resources/deploy-codex.sh" # Bestimmtes Projekt deployen bash "$skill_dir/resources/deploy-codex.sh" /pfad/zum/projekt # Vorhandenes Tarball deployen bash "$skill_dir/resources/deploy-codex.sh" /pfad/zum/projekt.tgz
Das Skript übernimmt Framework-Erkennung, Paketierung und Bereitstellung. Es wartet auf den Abschluss des Builds und gibt JSON mit previewUrl und claimUrl zurück.
Sagen Sie dem Benutzer: "Ihre Bereitstellung ist bereit unter [previewUrl]. Beanspruchen Sie sie unter [claimUrl], um Ihre Bereitstellung zu verwalten."
Erweiterter Netzwerkzugriff: Eskalieren Sie nur den eigentlichen Bereitstellungsbefehl, wenn die Sandbox den Netzwerkaufruf blockiert (sandbox_permissions=require_escalated). Eskalieren Sie nicht die command -v vercel-Prüfung.
Agent-spezifische Hinweise
Claude Code / Terminal-basierte Agenten
Sie haben vollen Shell-Zugriff. Verwenden Sie NICHT den Pfad /mnt/skills/. Folgen Sie dem Entscheidungsfluss oben mit der CLI direkt.
Für den anmeldefreien Fallback führen Sie das Bereitstellungsskript aus dem installierten Speicherort des Skills aus:
bash ~/.claude/skills/deploy-to-vercel/resources/deploy.sh [pfad]
Der Pfad kann variieren, je nachdem, wo der Benutzer den Skill installiert hat.
Sandbox-Umgebungen (claude.ai)
Sie können wahrscheinlich vercel login oder git push nicht ausführen. Gehen Sie direkt zum anmeldefreien Fallback – claude.ai-Sandbox.
Codex
Codex läuft in einer Sandbox. Prüfen Sie zuerst, ob die CLI verfügbar ist, und fallen Sie dann auf das Bereitstellungsskript zurück. Gehen Sie zum anmeldefreien Fallback – Codex-Sandbox.
Ausgabe
Zeigen Sie dem Benutzer immer die Bereitstellungs-URL.
- Git-Push: Verwenden Sie
vercel ls --format json, um die Vorschau-URL zu finden. Wenn die CLI nicht authentifiziert ist, sagen Sie dem Benutzer, er solle das Vercel-Dashboard oder die Commit-Statusprüfungen überprüfen. - CLI-Deploy: Zeigen Sie die von
vercel deploy --no-waitzurückgegebene URL. Verwenden Sievercel inspect <url>, um den Build-Status zu überprüfen und dem Benutzer zu melden. - Anmeldefreier Fallback: Zeigen Sie sowohl die Vorschau-URL als auch die Claim-URL:
Bereitstellung erfolgreich! Vorschau-URL: https://my-app-abc123.vercel.app Claim-URL: https://vercel.com/claim-deployment?code=... Sehen Sie sich Ihre Seite unter der Vorschau-URL an. Um diese Bereitstellung auf Ihr Vercel-Konto zu übertragen, besuchen Sie die Claim-URL.
Führen Sie kein Curl oder Fetch auf der bereitgestellten URL aus, um zu überprüfen, ob sie funktioniert. Geben Sie einfach den Link zurück.
Fehlerbehebung
Netzwerk-Egress-Fehler (claude.ai)
Wenn die Bereitstellung aufgrund von Netzwerkbeschränkungen auf claude.ai fehlschlägt, sagen Sie dem Benutzer:
Bereitstellung aufgrund von Netzwerkbeschränkungen fehlgeschlagen. So beheben Sie das Problem:
1. Gehen Sie zu https://claude.ai/settings/capabilities
2. Fügen Sie *.vercel.com zu den erlaubten Domains hinzu
3. Versuchen Sie die Bereitstellung erneut
Erweiterter Netzwerkzugriff (Codex / Sandbox-Umgebungen)
Wenn die Bereitstellung aufgrund von Netzwerkproblemen (Timeouts, DNS-Fehler, Verbindungsabbrüche) in einer Sandbox-Umgebung fehlschlägt, führen Sie sie mit erweiterten Berechtigungen erneut aus (sandbox_permissions=require_escalated). Eskalieren Sie nicht die erste Prüfung der CLI-Verfügbarkeit – eskalieren Sie nur den eigentlichen Bereitstellungsbefehl.
Beispielhinweis für den Benutzer:
Die Bereitstellung benötigt erweiterten Netzwerkzugriff, um auf Vercel bereitzustellen.
Ich kann den Befehl mit erweiterten Berechtigungen erneut ausführen – möchten Sie fortfahren?
CLI-Authentifizierungsfehler
Wenn vercel login oder vercel deploy mit Authentifizierungsfehlern fehlschlägt, fallen Sie auf das anmeldefreie Bereitstellungsskript zurück (claude.ai- oder Codex-Variante, je nach Umgebung).