next.config.js Optionen

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.

assetPrefix

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

basePath

Verwenden Sie `basePath`, um eine Next.js-Anwendung unter einem Unterpfad einer Domain bereitzustellen.

bundlePagesRouterDependencies

Aktiviert das automatische Bündeln von Abhängigkeiten für den Pages Router

Komprimierung

Next.js bietet Gzip-Komprimierung für gerenderte Inhalte und statische Dateien, die nur mit dem Server-Target funktioniert. Erfahren Sie hier mehr darüber.

crossOrigin

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

devIndicators

Optimierte Seiten enthalten einen Indikator, der anzeigt, ob sie statisch optimiert werden. Hier können Sie dies deaktivieren.

distDir

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

env

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

eslint

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

exportPathMap

Passen Sie die Seiten an, 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

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

headers

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

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

onDemandEntries

Konfigurieren Sie, wie Next.js Seiten im Entwicklungsmodus 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 eine einfache Bereitstellung Ihrer Anwendung zu ermöglichen. Erfahren Sie hier, wie es funktioniert.

pageExtensions

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

poweredByHeader

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

productionBrowserSourceMaps

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

reactStrictMode

Die komplette Next.js-Laufzeitumgebung ist jetzt 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.

Runtime-Konfiguration

Fügen Sie Ihren Next.js-Anwendungen client- und serverseitige Laufzeitkonfigurationen hinzu.

serverExternalPackages

Bestimmte Abhängigkeiten vom Dependency-Bundling ausschließen, das durch `bundlePagesRouterDependencies` aktiviert wird.

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`).

turbo

Konfigurieren Sie Next.js mit Turbopack-spezifischen Optionen

TypeScript

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

urlImports

Konfigurieren Sie Next.js, um den Import von Modulen von externen URLs zu ermöglichen.

useLightningcss

Experimentelle Unterstützung für Lightning CSS aktivieren.

webpack

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

webVitalsAttribution

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

On this page