Optimierung von Bundling
Das Bundling externer Pakete kann die Leistung Ihrer Anwendung erheblich verbessern. Standardmäßig werden in Ihre Anwendung importierte Pakete nicht gebündelt. Dies kann die Leistung beeinträchtigen oder möglicherweise nicht funktionieren, wenn externe Pakete nicht vorgebündelt sind, beispielsweise wenn sie aus einem Monorepo oder node_modules
importiert werden. Diese Seite wird Sie durch die Analyse und Konfiguration des Paket-Bundlings führen.
Analysieren von JavaScript-Bundles
@next/bundle-analyzer
ist ein Plugin für Next.js, das Ihnen hilft, die Größe Ihrer Anwendungs-Bundles zu verwalten. Es generiert einen visuellen Bericht über die Größe der einzelnen Pakete und deren Abhängigkeiten. Sie können die Informationen nutzen, um große Abhängigkeiten zu entfernen, zu teilen oder Ihren Code lazy zu laden.
Installation
Installieren Sie das Plugin durch Ausführen des folgenden Befehls:
Fügen Sie dann die Einstellungen des Bundle-Analyzers zu Ihrer next.config.js
hinzu.
Generieren eines Berichts
Führen Sie den folgenden Befehl aus, um Ihre Bundles zu analysieren:
Der Bericht öffnet drei neue Tabs in Ihrem Browser, die Sie untersuchen können. Eine regelmäßige Bewertung der Bundles Ihrer Anwendung kann Ihnen helfen, die Leistung im Laufe der Zeit zu erhalten.
Optimieren von Paket-Importen
Einige Pakete, wie Bibliotheken mit Icons, können Hunderte von Modulen exportieren, was Leistungsprobleme in Entwicklung und Produktion verursachen kann.
Sie können die Art und Weise, wie diese Pakete importiert werden, optimieren, indem Sie die Option optimizePackageImports
zu Ihrer next.config.js
hinzufügen. Diese Option lädt nur die Module, die Sie tatsächlich verwenden, während sie Ihnen weiterhin die Bequemlichkeit bietet, Import-Anweisungen mit vielen benannten Exporten zu schreiben.
Next.js optimiert einige Bibliotheken auch automatisch, sodass sie nicht in die Liste von optimizePackageImports aufgenommen werden müssen. Sehen Sie sich die vollständige Liste an.
Bundling bestimmter Pakete
Um bestimmte Pakete zu bündeln, können Sie die Option transpilePackages
in Ihrer next.config.js
verwenden. Diese Option ist nützlich, um externe Pakete zu bündeln, die nicht vorgebündelt sind, beispielsweise in einem Monorepo oder aus node_modules
importiert.
Bundling aller Pakete
Um alle Pakete automatisch zu bündeln (Standardverhalten im App Router), können Sie die Option bundlePagesRouterDependencies
in Ihrer next.config.js
verwenden.
Ausnahmen für bestimmte Pakete beim Bundling
Wenn die Option bundlePagesRouterDependencies
aktiviert ist, können Sie bestimmte Pakete vom automatischen Bundling ausnehmen, indem Sie die Option serverExternalPackages
in Ihrer next.config.js
verwenden: