Installationsanleitungen

Next.js installieren und live schalten

Wir zeigen Schritt für Schritt, wie Sie mit create-next-app ein Next.js-Projekt aufsetzen, die Ordnerstruktur des App Routers verstehen und das Projekt auf Vercel oder dem eigenen Server veröffentlichen.

Aurora YazılımRedaktionsteam 6 Min. Lesezeit
Next.js installieren und live schalten
Wie installiert man Next.js?

Für die Next.js-Installation installieren Sie zunächst die aktuelle LTS-Version von Node.js und führen dann im Terminal den Befehl npx create-next-app@latest aus. Der Assistent fragt nach TypeScript, ESLint, Tailwind CSS und dem App Router. Wechseln Sie in den Projektordner und starten Sie mit npm run dev den Entwicklungsserver; die Seite öffnet sich unter localhost:3000, und für den Livebetrieb nutzen Sie npm run build.

Was ist Next.js, wer sollte es nutzen?

Next.js ist ein auf React aufbauendes Framework für Webanwendungen. Während React nur Oberflächenkomponenten rendert, bringt Next.js Routing, serverseitige Seitengenerierung, statische Seitenausgabe, Bildoptimierung und API-Endpunkte gleich mit.

Sein größter Vorteil ist, dass es Seiten auf dem Server als HTML erzeugen kann. Suchmaschinen und Social-Media-Vorschauen sehen den Inhalt direkt, und der erste Seitenaufruf wird schneller. Deshalb passt es für inhaltsstarke Unternehmensseiten, Kataloge und Blogseiten besser als Single-Page-Anwendungen.

Entwickeln Sie nur ein Verwaltungspanel, das eine Anmeldung voraussetzt, kann eine schlichtere Struktur genügen; für dieses Szenario lesen Sie unsere Anleitung zur React-Installation mit Vite.

Voraussetzungen

Next.js ist wählerisch bei den unterstützten Node.js-Versionen und lässt in neuen Hauptversionen ältere Node-Versionen fallen. Am reibungslosesten ist es daher, die aktuelle LTS-Version von nodejs.org zu installieren.

  • Die aktuelle LTS-Version von Node.js und npm (kommt mit Node); pnpm, yarn oder bun sind ebenfalls möglich.
  • Einen Code-Editor; für die Einrichtung mit empfohlenen Erweiterungen lesen Sie den Beitrag zur VS-Code-Installation.
  • Git und ein Remote-Repository (GitHub, GitLab): Deployment-Prozesse werden meist aus dem Repository gespeist.
  • Wenn Sie auf Ihrem eigenen Server installieren, einen Linux-Server mit SSH-Zugang.

Node.js installieren und prüfen

Die Node.js-Installation unterscheidet sich je nach Betriebssystem in Kleinigkeiten; die Next.js-Befehle sind nach der Installation überall gleich.

Windows

Laden Sie die LTS-Installationsdatei von nodejs.org herunter oder nutzen Sie winget; öffnen Sie danach das Terminal neu.

powershell
winget install OpenJS.NodeJS.LTS
node -v

macOS

Sie können mit dem offiziellen Paket oder mit Homebrew installieren.

bash
brew install node
node -v

Linux

Die Version in den Distributions-Repositories kann veraltet sein; die Installation mit nvm ist sicherer.

bash
nvm install --lts
nvm use --lts
node -v

Projekt mit create-next-app anlegen

Der Assistent create next app ist das offizielle Startwerkzeug und installiert alle nötigen Pakete in einem Schritt. Beim Ausführen des Befehls werden Projektname und einige Optionen abgefragt; sind Sie unsicher, ist es ein guter Start, die empfohlenen Standardwerte zu übernehmen.

FrageEmpfehlung
TypeScriptJa; fängt Fehler schon beim Schreiben ab
ESLintJa; für die Codequalität
Tailwind CSSGeschmackssache; je nach Ihrem Designsystem wählen
Ordner src/Geschmackssache; trennt Konfigurationsdateien vom Code
App RouterJa; die empfohlene Struktur für neue Projekte
Import-AliasStandard @/* genügt
bashInstallation und Entwicklungsserver
npx create-next-app@latest benim-sitem
cd benim-sitem
npm run dev

Die Struktur des App Routers verstehen

Der Next.js App Router leitet das Routing aus der Ordnerstruktur ab. Jeder Ordner unterhalb von app ist ein Adressabschnitt; die Datei page.tsx in diesem Ordner definiert die Seite, layout.tsx das gemeinsame Grundgerüst dieses Bereichs.

Im App Router sind Komponenten standardmäßig Server-Komponenten: Sie laufen auf dem Server, können Daten direkt abrufen und senden kein JavaScript an den Browser. Komponenten, die Interaktion brauchen, etwa Klicks oder Formularzustand, machen Sie zu Client-Komponenten, indem Sie ganz oben die Direktive use client schreiben.

DateiAdresse / Aufgabe
app/layout.tsxWurzelgerüst der gesamten Website: html, body, gemeinsamer Header und Footer
app/page.tsxStartseite (/)
app/hakkimizda/page.tsxAdresse /hakkimizda
app/blog/[slug]/page.tsxDynamische Adresse: /blog/beliebiger-beitrag
app/not-found.tsx404-Seite
app/api/iletisim/route.tsAPI-Endpunkt (POST- und GET-Handler)

Metadata für SEO

Jede Seite oder Layout-Datei kann ein metadata-Objekt exportieren und so Titel, Beschreibung und Open-Graph-Tags definieren. Bei dynamischen Seiten nutzt man die Funktion generateMetadata. So lassen sich die für SEO-optimiertes Webdesign nötigen Tags auf Seitenebene verwalten.

Build und Umgebungsvariablen

Erstellen Sie vor dem Livegang mit npm run build einen Produktions-Build. Die Build-Ausgabe listet, ob jede Seite statisch oder dynamisch erzeugt wird; erscheint eine Seite unerwartet als dynamisch, ist das ein frühes Zeichen für unnötige Serverlast.

Umgebungsvariablen liegen in der Datei .env.local. Nur Variablen mit dem Präfix NEXT_PUBLIC_ werden an den Browser gesendet; Datenbankpasswörter und geheime API-Schlüssel müssen ohne Präfix bleiben und dürfen nur im Servercode verwendet werden.

bash
npm run build
npm run start

Welche Seite wie erzeugen?

Die Stärke von Next.js liegt darin, dass Sie für jede Seite eine andere Rendering-Strategie wählen können. Eine falsche Wahl bedeutet entweder unnötige Serverkosten oder veraltete Inhalte; klassifizieren Sie Ihre Seiten daher gleich nach dem Aufsetzen nach Typ.

Seiten, die sich selten ändern, etwa Über uns, Leistungen und Kontakt, eignen sich ideal für die statische Generierung: Sie werden beim Build einmal erzeugt und in unter einer Sekunde per CDN ausgeliefert. Die Seiten einer Unternehmenswebsite gehören fast alle in diese Gruppe.

Bei Seiten, die gelegentlich aktualisiert werden, etwa Blog und Produktlisten, ist die regelmäßige Neugenerierung (Revalidate) ein guter Kompromiss. Nutzerspezifische Panels, Warenkörbe oder Buchungsmasken mit Live-Verfügbarkeit müssen dagegen bei jeder Anfrage auf dem Server erzeugt werden. Diese letzte Gruppe ist ein häufiges Szenario bei Branchensoftware für Hotels und Reisebüros und erfordert, Datenbank, Cache und Autorisierung gemeinsam zu entwerfen.

Deployment-Optionen für Next.js

Für das Next.js-Deployment gibt es drei gängige Wege. Welcher passt, hängt von Traffic, Budget, Datenstandort und der Erfahrung Ihres Teams im Serverbetrieb ab.

  • Vercel: die Plattform des Unternehmens, das Next.js entwickelt. Sie verbinden das Repository, und bei jedem Push entstehen automatisch ein Build und eine Vorschau-Adresse.
  • Eigener Node.js-Server: Die mit npm run start laufende Anwendung hält ein Prozessmanager wie PM2 am Leben, davor wird Nginx gesetzt. Das bietet volle Kontrolle, aber die Verantwortung für den Betrieb liegt bei Ihnen.
  • Statischer Export: Mit der Einstellung output: 'export' in der Datei next.config wird die Website zu reinen HTML-Dateien. Dynamische Funktionen, die Server-Komponenten erfordern, laufen in diesem Modus nicht.

Livegang mit PM2 und Nginx

Nachdem Sie Node.js auf einem Ubuntu-basierten Server installiert haben, ziehen Sie das Projekt aus dem Repository, bauen es und starten es mit PM2. Der Befehl startup von PM2 verlangt, dass Sie die ausgegebene Zeile mit sudo ausführen; sie sorgt dafür, dass die Anwendung nach einem Neustart des Servers automatisch startet.

bash
git clone https://github.com/kullanici/benim-sitem.git
cd benim-sitem
npm ci
npm run build
sudo npm install -g pm2
pm2 start npm --name benim-sitem -- start
pm2 save
pm2 startup
nginxNginx als Reverse Proxy
server {
    listen 80;
    server_name ornek.com www.ornek.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Häufige Fehler und Lösungen

Die meisten Fehler in Next.js-Projekten entstehen durch Versionsinkompatibilität oder durch die Vermischung von Server- und Client-Code. Bei Problemen mit der Paketverwaltung hilft außerdem der Ratgeber zu npm-Befehlen.

SymptomLösung
Warnung »Node-Version wird nicht unterstützt«Wechseln Sie auf die aktuelle LTS-Version; mit nvm: nvm use --lts
Port 3000 belegtWählen Sie mit npm run dev -- -p 3001 einen anderen Port
Fehler »Hydration failed«Verschieben Sie Code, der auf Server und Browser unterschiedliche Ausgaben erzeugt (Datum, Zufallszahl, window-Nutzung), in eine Client-Komponente oder in useEffect
useState lässt sich in einer Server-Komponente nicht verwendenFügen Sie ganz oben in der Datei die Direktive use client ein
Umgebungsvariable im Livebetrieb leerDefinieren Sie die Variable auch auf dem Server; wird sie im Browser gebraucht, nutzen Sie das Präfix NEXT_PUBLIC_ und bauen Sie neu

Häufig gestellte Fragen

01Pages Router oder App Router, was soll ich nutzen?

Für neue Projekte lautet die offizielle Empfehlung App Router; Server-Komponenten, verschachtelte Layouts und Streaming-Rendering gibt es nur in dieser Struktur. Der Pages Router wird weiterhin unterstützt, Sie müssen ein älteres Projekt also nicht überstürzt umziehen.

02Braucht man für Next.js zwingend Vercel?

Nein. Next.js ist Open Source und läuft auf jedem Server, der Node.js ausführen kann, oder in einem Docker-Container. Vercel erleichtert die Einrichtung; ein eigener Server kann bei Kosten, Datenstandort und Kontrolle Vorteile bieten.

03Läuft ein Next.js-Projekt auf Shared Hosting?

Ein Projekt, das Serverfunktionen benötigt, läuft auf klassischem Shared Hosting nicht, auf dem sich kein Node.js-Prozess ausführen lässt. Ist Ihre Website komplett statisch, können Sie die mit output: export erzeugten Dateien hochladen; andernfalls brauchen Sie einen VPS oder eine Umgebung mit Node-Unterstützung.

Die Next.js-Installation ist mit wenigen Befehlen erledigt; die richtige Rendering-Strategie und eine solide Produktionsumgebung machen das Projekt langlebig. Planen Sie eine auf Ihr Geschäft zugeschnittene Anwendung wie Reservierung, Inserate oder Verwaltungspanel, lernen Sie unsere Softwarelösungen kennen; für eine inhaltsorientierte, schnelle Website lernen Sie unser Webdesign-Team kennen.