nextjs 14 typescript contentful app router - komplettes Beispiel
Author Cloudapp
E.G.

Next.js 14 - Komplettes Beispiel - Typescript / App Router / Contentful mit GraphQL - Teil 1

8. März 2024
Inhaltsverzeichnis

Lassen Sie uns eine völlig neue Website erstellen, die mit folgendem Tech-Stack betrieben wird:

  • Next.js 14 - Als modernes Web Framework für Frontend und Backend

  • App Router - Damit wir das Beste aus dem Project rausholen können und der Pages Router ist nicht mehr aktuell

  • Contentful - Unser headless CMS

  • Typescript - Typisiertes Javascript

Dies ist der erste Beitrag einer Reihe, in der wir eine Website von Grund auf erstellen werden. Zuerst beginnen wir mit der Projektinitialisierung, dann erstellen wir das Contentful-Konto und als letzten Schritt integrieren wir Contentful als Headless CMS in unser Next.js-Projekt. In den folgenden Beiträgen werden wir tiefer in das Projekt eindringen und Funktionen wie Mehrsprachigkeitsunterstützung, Benutzerregistrierung/-authentifizierung, erweiterte Suche mit Algolia und vieles mehr hinzufügen.

Alle verwendeten Services sind kostenlos und gut geeignet für kleinere Projekte.

Projekt erstellen mit create-next-app

Wir benutzen die "latest" Version des create-next-app pakets

create-next-app
create-next-app

Ich verwende VS Code für die Entwicklung, also bitte installieren Sie VS Code https://code.visualstudio.com/download

Öffnen Sie VSCode und falls Sie einen Mac verwenden, dann Command + Shift + P, dies öffnet die Befehlspalette von VSCode, und tippen Sie nun „shell“ ein. Sie sollten „Shell-Befehl: Befehl 'Code' im Pfad installieren“ im Dropdown-Menü sehen. Bitte wählen Sie es aus und jetzt ist VSCode in Ihrem Pfad. So können Sie in Ihren zuvor erstellten Ordner springen und tippen

dieser Befehl öffent VSCode direkt im Projektverzeichnis. Jetzt register wir uns noch bei www.contentful.com und schon sind wir ready. Nach dem ersten Login sollten Sie „Von Grund auf neu starten“ auswählen.

Contentful Begrüssungsbildschirm
Contentful Begrüssungsbildschirm

Erstellen der Contentful API Token & Space ID

Jetzt erstellen wir die benötigten API-Schlüssel für unsere .env.local-Datei. Zuerst Space_ID, Access_Token und Preview_Access_Token und dann Management_Token für Schreib-/Einfügeoperationen.

Contentful rechtes Flyout für Api Keys - Teil 1
Contentful rechtes Flyout für Api Keys - Teil 1
Contentful rechtes Flyout für Api Keys - Teil 2
Contentful rechtes Flyout für Api Keys - Teil 2
Contentful rechtes Flyout für Api Keys - Teil 3
Contentful rechtes Flyout für Api Keys - Teil 3
Contentful rechtes Flyout für Api Keys - Teil 4
Contentful rechtes Flyout für Api Keys - Teil 4

Management Token (CMA)

Contentful rechtes Flyout für Management Api Key
Contentful rechtes Flyout für Management Api Key
Contentful pop-up für neues Content Management Api Key
Contentful pop-up für neues Content Management Api Key

Env File und Npm Packages

Erstellen wir nun die Datei .env.local für die Umgebungsvariablen im Projektverzeichnis

Npm pakete hinzufügen

Nun erstellen wir die Datei codegen.ts im Projektverzeichnis

Wir müssen diese zwei Zeilen Code in der Datei package.json hinzufügen, damit später die Befehle funktionieren

Verzeichnisse und Dateien anlegen für GraphQL

Erstellen der Dateien src/lib und client.ts

Erstellen Sie einen Ordner „graphql“ unter src/lib/ und innerhalb des Ordners „graphql“ erstellen Sie diese .graphql-Dateien (Sie können sie vom Github-Repo bekommen)

Jetzt erstellen wir einen neuen Ordner namens contentfulsync im Projektstammverzeichnis und fügen dann diese Zeilen im Skriptbereich der package.json hinzu

Lassen Sie uns die Importkonfigurationsdatei für die contentful-cli unter contentfulsync/import/config/contentful-import-config.json erstellen

Neues Verzeichnis erstellen contentfulsync/export/config

Daten in den Contentful Space importieren

Jetzt können wir den Import durchführen

Nachdem dies erledigt ist, sind die Inhaltstypen und der Inhalt in unserem Contentful Space vorhanden.

Und das Frontend ?

Um die Daten im Frontend anzeigen zu können, müssen wir fehlende npm-Pakete installieren.

Als nächster Schritt fügen wir diese Komponenten unter src/components hinzu (erstellen Sie den Komponentenordner, falls er nicht existiert)

Jetzt noch die Datei page.tsx im Verzeichnis src/app/ anpassen

Deployment

Dev Server starten

führt zu einem Fehler, da die Domain, von der die Bilder bereitgestellt wurden „images.ctfassets.net“, nicht konfiguriert ist. Gehen wir also zu unserer next.config.js Datei und ändern sie, sodass sie folgendermaßen aussieht:

Nun sollte der Entwicklungsserver starten und wir können die URL http://localhost:3000 verwenden, um das Ergebnis zu sehen.

Frontendvorschau
Frontendvorschau

Das war's. Die Grundlagen sind geschaffen und im nächsten Beitrag werden wir mit dem Frontend fortfahren, dann wie wir zusätzliche Sprachen handhaben können, Benutzerregistrierung/-anmeldung und vieles mehr. Bleiben Sie gespannt und natürlich dran.

Github Repo

https://github.com/cloudapp-dev/nextjs13_5-typescript-app-router-contentful

Wenn Ihnen gefällt, was Sie sehen, dann unterstützen Sie mich bitte mit einem "Clap" oder folgen Sie mir auf medium.com.

Verwandte Artikel