AMP-Seiten in Next.js erstellen
Beispiele
Mit Next.js können Sie jede React-Seite mit minimaler Konfiguration und ohne React verlassen zu müssen in eine AMP-Seite umwandeln.
Weitere Informationen über AMP finden Sie auf der offiziellen Website amp.dev.
AMP aktivieren
Um AMP-Unterstützung für eine Seite zu aktivieren und mehr über die verschiedenen AMP-Konfigurationen zu erfahren, lesen Sie die API-Dokumentation für next/amp
.
Einschränkungen
- Es wird nur CSS-in-JS unterstützt. CSS-Module werden derzeit von AMP-Seiten nicht unterstützt. Sie können CSS-Module-Unterstützung zu Next.js beitragen.
AMP-Komponenten hinzufügen
Die AMP-Community bietet viele Komponenten, um AMP-Seiten interaktiver zu gestalten. Next.js importiert automatisch alle auf einer Seite verwendeten Komponenten, und es ist nicht erforderlich, AMP-Komponentenskripte manuell zu importieren:
Das obige Beispiel verwendet die Komponente amp-timeago
.
Standardmäßig wird immer die neueste Version einer Komponente importiert. Wenn Sie die Version anpassen möchten, können Sie next/head
verwenden, wie im folgenden Beispiel gezeigt:
AMP-Validierung
AMP-Seiten werden während der Entwicklung automatisch mit amphtml-validator validiert. Fehler und Warnungen werden im Terminal angezeigt, in dem Sie Next.js gestartet haben.
Seiten werden auch während des statischen HTML-Exports validiert, und alle Warnungen/Fehler werden im Terminal ausgegeben. AMP-Fehler führen dazu, dass der Export mit dem Statuscode 1
beendet wird, da der Export kein gültiges AMP ist.
Benutzerdefinierte Validatoren
Sie können einen benutzerdefinierten AMP-Validator in next.config.js
wie folgt einrichten:
AMP-Validierung überspringen
Um die AMP-Validierung zu deaktivieren, fügen Sie den folgenden Code zu next.config.js
hinzu:
AMP im statischen HTML-Export
Bei Verwendung des statischen HTML-Exports für statisch vorgerenderte Seiten erkennt Next.js, ob die Seite AMP unterstützt, und passt das Exportverhalten entsprechend an.
Beispielsweise würde die hybride AMP-Seite pages/about.js
folgendes ausgeben:
out/about.html
- HTML-Seite mit clientseitigem React-Laufzeitumgebungout/about.amp.html
- AMP-Seite
Und wenn pages/about.js
eine reine AMP-Seite ist, würde sie folgendes ausgeben:
out/about.html
- Optimierte AMP-Seite
Next.js fügt automatisch einen Link zur AMP-Version Ihrer Seite in die HTML-Version ein, sodass Sie dies nicht manuell tun müssen, wie hier gezeigt:
Und die AMP-Version Ihrer Seite enthält einen Link zur HTML-Seite:
Wenn trailingSlash
aktiviert ist, würden die exportierten Seiten für pages/about.js
folgendermaßen aussehen:
out/about/index.html
- HTML-Seiteout/about.amp/index.html
- AMP-Seite
TypeScript
AMP bietet derzeit keine integrierten Typen für TypeScript, aber dies ist in ihrer Roadmap enthalten (#13791).
Als Workaround können Sie manuell eine Datei namens amp.d.ts
in Ihrem Projekt erstellen und diese benutzerdefinierten Typen hinzufügen.