next.config.js

Next.js kann über eine next.config.js-Datei im Stammverzeichnis Ihres Projekts (zum Beispiel neben package.json) mit einem Standard-Export konfiguriert werden.

next.config.js
// @ts-check

/** @type {import('next').NextConfig} */
const nextConfig = {
  /* Konfigurationsoptionen hier */
}

module.exports = nextConfig

ECMAScript-Module

next.config.js ist ein reguläres Node.js-Modul, keine JSON-Datei. Es wird von der Next.js-Server- und Build-Phase verwendet und ist nicht im Browser-Build enthalten.

Falls Sie ECMAScript-Module benötigen, können Sie next.config.mjs verwenden:

next.config.mjs
// @ts-check

/**
 * @type {import('next').NextConfig}
 */
const nextConfig = {
  /* Konfigurationsoptionen hier */
}

export default nextConfig

Gut zu wissen: next.config mit den Erweiterungen .cjs, .cts oder .mts werden derzeit nicht unterstützt.

Konfiguration als Funktion

Sie können auch eine Funktion verwenden:

next.config.mjs
// @ts-check

export default (phase, { defaultConfig }) => {
  /**
   * @type {import('next').NextConfig}
   */
  const nextConfig = {
    /* Konfigurationsoptionen hier */
  }
  return nextConfig
}

Asynchrone Konfiguration

Seit Next.js 12.1.0 können Sie eine asynchrone Funktion verwenden:

next.config.js
// @ts-check

module.exports = async (phase, { defaultConfig }) => {
  /**
   * @type {import('next').NextConfig}
   */
  const nextConfig = {
    /* Konfigurationsoptionen hier */
  }
  return nextConfig
}

Phase

phase ist der aktuelle Kontext, in dem die Konfiguration geladen wird. Sie können die verfügbaren Phasen einsehen. Phasen können aus next/constants importiert werden:

next.config.js
// @ts-check

const { PHASE_DEVELOPMENT_SERVER } = require('next/constants')

module.exports = (phase, { defaultConfig }) => {
  if (phase === PHASE_DEVELOPMENT_SERVER) {
    return {
      /* Nur für die Entwicklung gültige Konfigurationsoptionen hier */
    }
  }

  return {
    /* Konfigurationsoptionen für alle Phasen außer Entwicklung hier */
  }
}

TypeScript

Wenn Sie TypeScript in Ihrem Projekt verwenden, können Sie next.config.ts nutzen, um TypeScript in Ihrer Konfiguration zu verwenden:

next.config.ts
import type { NextConfig } from 'next'

const nextConfig: NextConfig = {
  /* Konfigurationsoptionen hier */
}

export default nextConfig

Die kommentierten Zeilen sind der Platz, an dem Sie die von next.config.js erlaubten Konfigurationen einfügen können, die in dieser Datei definiert sind.

Allerdings ist keine der Konfigurationen erforderlich, und es ist nicht notwendig zu verstehen, was jede Konfiguration bewirkt. Stattdessen können Sie nach den Funktionen suchen, die Sie aktivieren oder ändern möchten, und diese Abschnitte zeigen Ihnen, was zu tun ist.

Vermeiden Sie die Verwendung neuer JavaScript-Funktionen, die in Ihrer Ziel-Node.js-Version nicht verfügbar sind. next.config.js wird nicht von Webpack oder Babel geparsed.

Diese Seite dokumentiert alle verfügbaren Konfigurationsoptionen:

Unit-Tests (experimentell)

Ab Next.js 15.1 enthält das Paket next/experimental/testing/server Hilfsmittel, um Unit-Tests für next.config.js-Dateien durchzuführen.

Die Funktion unstable_getResponseFromNextConfig führt die Funktionen headers, redirects und rewrites aus next.config.js mit den bereitgestellten Anfrageinformationen aus und gibt eine NextResponse mit den Ergebnissen des Routings zurück.

Die Antwort von unstable_getResponseFromNextConfig berücksichtigt nur die Felder von next.config.js und beachtet weder Middleware noch Dateisystemrouten, sodass das Ergebnis in der Produktion anders ausfallen kann als im Unit-Test.

import {
  getRedirectUrl,
  unstable_getResponseFromNextConfig,
} from 'next/experimental/testing/server'

const response = await unstable_getResponseFromNextConfig({
  url: 'https://nextjs.org/test',
  nextConfig: {
    async redirects() {
      return [{ source: '/test', destination: '/test2', permanent: false }]
    },
  },
})
expect(response.status).toEqual(307)
expect(getRedirectUrl(response)).toEqual('https://nextjs.org/test2')

allowedDevOrigins

Mit `allowedDevOrigins` können zusätzliche Ursprünge konfiguriert werden, die den Entwicklungsserver anfragen dürfen.

appDir

Aktiviert den App Router für Layouts, Streaming und mehr.

assetPrefix

Erfahren Sie, wie Sie die Konfigurationsoption assetPrefix verwenden, um Ihre CDN zu konfigurieren.

authInterrupts

Erfahren Sie, wie Sie die experimentelle Konfigurationsoption `authInterrupts` aktivieren, um `forbidden` und `unauthorized` zu verwenden.

basePath

Mit `basePath` können Sie eine Next.js-Anwendung unter einem Unterpfad einer Domain bereitstellen.

cacheLife

Erfahren Sie, wie Sie cacheLife-Konfigurationen in Next.js einrichten.

Komprimierung

Next.js bietet Gzip-Komprimierung, um gerenderte Inhalte und statische Dateien zu komprimieren. Dies funktioniert nur mit dem Server-Target. Erfahren Sie hier mehr darüber.

crossOrigin

Mit der `crossOrigin`-Option können Sie ein CrossOrigin-Tag zu den von `next/script` generierten `script`-Tags hinzufügen.

cssChunking

Mit der Option `cssChunking` können Sie steuern, wie CSS-Dateien in Ihrer Next.js-Anwendung in Chunks aufgeteilt werden.

devIndicators

Konfigurationsoptionen für den Bildschirm-Indikator, der während der Entwicklung Kontext über die aktuell angezeigte Route liefert.

distDir

Legen Sie ein benutzerdefiniertes Build-Verzeichnis fest, das anstelle des Standardverzeichnisses `.next` verwendet werden soll.

dynamicIO

Erfahren Sie, wie Sie das dynamicIO-Flag in Next.js aktivieren können.

Umgebungsvariablen (env)

Erfahren Sie, wie Sie Umgebungsvariablen in Ihrer Next.js-Anwendung zur Build-Zeit hinzufügen und darauf zugreifen können.

eslint

Standardmäßig meldet Next.js ESLint-Fehler und Warnungen während des Builds. Hier erfahren Sie, wie Sie dieses Verhalten deaktivieren können.

expireTime

Anpassung der Ablaufzeit für stale-while-revalidate bei ISR-aktivierten Seiten.

exportPathMap

Anpassung der Seiten, die beim Verwenden von `next export` als HTML-Dateien exportiert werden.

generateBuildId

Konfigurieren der Build-ID, die zur Identifizierung des aktuellen Builds verwendet wird, in dem Ihre Anwendung bereitgestellt wird.

generateEtags

Standardmäßig generiert Next.js für jede Seite ETags. Erfahren Sie hier mehr darüber, wie Sie die ETag-Generierung deaktivieren können.

HTTP-Header

Fügen Sie Ihren Next.js-Apps benutzerdefinierte HTTP-Header hinzu.

htmlLimitedBots

Gibt eine Liste von User Agents an, die Blockierungs-Metadaten erhalten sollen.

httpAgentOptions

Next.js verwendet standardmäßig automatisch HTTP Keep-Alive. Erfahren Sie hier mehr darüber, wie Sie HTTP Keep-Alive deaktivieren können.

Bilder

Benutzerdefinierte Konfiguration für den next/image-Loader

cacheHandler

Konfigurieren Sie den Next.js-Cache, der zum Speichern und Revalidieren von Daten verwendet wird, um beliebige externe Dienste wie Redis, Memcached oder andere zu nutzen.

inlineCss

Aktiviert die Unterstützung für Inline-CSS.

Protokollierung

Konfigurieren Sie, wie Datenabrufe in der Konsole protokolliert werden, wenn Next.js im Entwicklungsmodus ausgeführt wird.

mdxRs

Verwendung des neuen Rust-Compilers zum Kompilieren von MDX-Dateien im App-Router.

onDemandEntries

Konfigurieren Sie, wie Next.js im Entwicklungsmodus erstellte Seiten verwaltet und im Speicher behält.

optimizePackageImports

API-Referenz für die Next.js-Konfigurationsoption `optimizePackageImports`

Output

Next.js verfolgt automatisch, welche Dateien für jede Seite benötigt werden, um die Bereitstellung Ihrer Anwendung zu vereinfachen. Erfahren Sie hier, wie es funktioniert.

pageExtensions

Erweitern Sie die standardmäßigen Seitenerweiterungen, die Next.js bei der Auflösung von Seiten im Pages Router verwendet.

poweredByHeader

Next.js fügt standardmäßig den `x-powered-by`-Header hinzu. Hier erfahren Sie, wie Sie dies deaktivieren können.

PPR

Erfahren Sie, wie Sie Partial Prerendering (PPR) in Next.js aktivieren.

productionBrowserSourceMaps

Aktiviert die Generierung von Browser-Source-Maps während des Produktions-Builds.

reactCompiler

Aktivieren Sie den React Compiler, um das Rendering von Komponenten automatisch zu optimieren.

reactMaxHeadersLength

Die maximale Länge der Header, die von React ausgegeben und zur Antwort hinzugefügt werden.

reactStrictMode

Die komplette Next.js-Laufzeitumgebung ist nun Strict Mode-kompatibel. Erfahren Sie, wie Sie sich dafür entscheiden können

Weiterleitungen

Weiterleitungen zu Ihrer Next.js-Anwendung hinzufügen.

Rewrites

Rewrites zu Ihrer Next.js-App hinzufügen.

sassOptions

Konfigurieren Sie Sass-Optionen.

serverActions

Konfigurieren Sie das Verhalten von Server-Aktionen (Server Actions) in Ihrer Next.js-Anwendung.

serverComponentsHmrCache

Konfigurieren Sie, ob Fetch-Antworten in Server-Komponenten über HMR-Aktualisierungsanfragen hinweg zwischengespeichert werden.

serverExternalPackages

Bestimmte Abhängigkeiten vom Bundling der Server Components ausschließen und das native Node.js `require` verwenden.

staleTimes

Erfahren Sie, wie Sie die Invalidierungszeit des Client-Router-Caches überschreiben können.

staticGeneration*

Erfahren Sie, wie Sie die statische Generierung in Ihrer Next.js-Anwendung konfigurieren können.

Tainting (Markierung sensibler Daten)

Aktiviert die Markierung von Objekten und Werten als sensibel.

trailingSlash

Konfigurieren Sie Next.js-Seiten, um sie mit oder ohne nachgestellten Schrägstrich aufzulösen.

transpilePackages

Automatisches Transpilieren und Bündeln von Abhängigkeiten aus lokalen Paketen (wie Monorepos) oder externen Abhängigkeiten (`node_modules`).

turbopack

Konfigurieren Sie Next.js mit Turbopack-spezifischen Optionen

typedRoutes

Experimentelle Unterstützung für statisch typisierte Links aktivieren.

TypeScript

Standardmäßig meldet Next.js TypeScript-Fehler. Hier erfahren Sie, wie Sie dieses Verhalten deaktivieren können.

urlImports

Konfigurieren Sie Next.js, um das Importieren von Modulen von externen URLs zu ermöglichen.

useCache

Erfahren Sie, wie Sie das useCache-Flag in Next.js aktivieren können.

useLightningcss

Experimentelle Unterstützung für Lightning CSS aktivieren.

viewTransition

Aktivierung der ViewTransition-API von React im App Router

webpack

Erfahren Sie, wie Sie die von Next.js verwendete Webpack-Konfiguration anpassen können

webVitalsAttribution

Erfahren Sie, wie Sie die Option webVitalsAttribution verwenden können, um die Ursache von Web Vitals-Problemen zu identifizieren.

On this page