Skip to content

Optionen zur Optimierung der Abhängigkeiten

Sofern nicht anders angegeben, werden die Optionen in diesem Abschnitt nur auf den Dependency Optimizer angewendet, der nur in dev verwendet wird.

optimizeDeps.entries

  • Typ: string | string[]

Standardmäßig durchsucht Vite alle Ihre .html-Dateien, um Abhängigkeiten zu erkennen, die vorab gebündelt werden müssen (ignoriert node_modules, build.outDir, __tests__ und coverage). Wenn build.rollupOptions.input angegeben ist, durchsucht Vite stattdessen diese Einstiegspunkte.

Wenn keine der beiden Optionen Ihren Anforderungen entspricht, können Sie mit dieser Option benutzerdefinierte Einträge angeben - der Wert sollte ein tinyglobby-Muster oder ein Array von Mustern sein, die relativ zum Vite-Projektroot sind. Dies überschreibt die Inferenz der Standardeinträge. Nur die Ordner node_modules und build.outDir werden standardmäßig ignoriert, wenn optimizeDeps.entries explizit definiert ist. Wenn andere Ordner ignoriert werden sollen, können Sie ein Ignoriermuster als Teil der Eintragsliste verwenden, das mit einem anfänglichen ! gekennzeichnet ist. Wenn Sie node_modules und build.outDir nicht ignorieren möchten, können Sie stattdessen literalisierte String-Pfade (ohne tinyglobby-Muster) angeben.

optimizeDeps.exclude

  • Typ: string[]

Abhängigkeiten, die von der Vorab-Bündelung ausgeschlossen werden sollen.

CommonJS

CommonJS-Abhängigkeiten sollten nicht von der Optimierung ausgeschlossen werden. Wenn eine ESM-Abhängigkeit von der Optimierung ausgeschlossen ist, aber eine verschachtelte CommonJS-Abhängigkeit hat, sollte die CommonJS-Abhängigkeit zu optimizeDeps.include hinzugefügt werden. Beispiel:

js
export default defineConfig({
  optimizeDeps: {
    include: ['esm-dep > cjs-dep'],
  },
})

optimizeDeps.include

  • Typ: string[]

Standardmäßig werden verknüpfte Pakete, die sich nicht in node_modules befinden, nicht vorab gebündelt. Verwenden Sie diese Option, um ein verknüpftes Paket zur Vorab-Bündelung zu zwingen.

Experimentell: Wenn Sie eine Bibliothek mit vielen tiefen Importen verwenden, können Sie auch ein abschließendes Glob-Muster angeben, um alle tiefen Importe auf einmal vorab zu bündeln. Dies vermeidet ständiges Vorab-Bündeln, wenn ein neuer tiefer Import verwendet wird. Feedback geben. Zum Beispiel:

js
export default defineConfig({
  optimizeDeps: {
    include: ['my-lib/components/**/*.vue'],
  },
})

optimizeDeps.esbuildOptions

  • Typ: Omit<EsbuildBuildOptions, | 'bundle' | 'entryPoints' | 'external' | 'write' | 'watch' | 'outdir' | 'outfile' | 'outbase' | 'outExtension' | 'metafile'>

Optionen, die an esbuild während des Abhängigkeits-Scannens und der Optimierung übergeben werden sollen.

Bestimmte Optionen werden ausgelassen, da ihre Änderung nicht mit der Abhängigkeitsoptimierung von Vite kompatibel wäre.

  • external wird ebenfalls ausgelassen, verwenden Sie Vites optimizeDeps.exclude-Option
  • plugins werden mit dem Abhängigkeits-Plugin von Vite zusammengeführt

optimizeDeps.force

  • Typ: boolean

Setzen Sie dies auf true, um die Vorab-Bündelung von Abhängigkeiten zu erzwingen und zuvor zwischengespeicherte optimierte Abhängigkeiten zu ignorieren.

optimizeDeps.holdUntilCrawlEnd

Wenn diese Funktion aktiviert ist, werden die ersten optimierten Deps-Ergebnisse zurückgehalten, bis alle statischen Importe beim kalten Start gecrawlt wurden. Dadurch wird vermieden, dass die gesamte Seite neu geladen werden muss, wenn neue Abhängigkeiten entdeckt werden und diese die Erzeugung neuer gemeinsamer Chunks auslösen. Wenn alle Abhängigkeiten vom Scanner gefunden werden, inklusive der explizit definierten in include, ist es besser, diese Option zu deaktivieren, damit der Browser mehr Anfragen parallel verarbeiten kann.

optimizeDeps.disabled

  • Veraltet
  • Experimentell: Feedback geben
  • Typ: boolean | 'build' | 'dev'
  • Standard: 'build'

Diese Option ist veraltet. Ab Vite 5.1 wurde die Vorbündelung von Abhängigkeiten während der Erstellung entfernt. Wenn optimizeDeps.disabled auf true oder 'dev' gesetzt wird, wird der Optimierer deaktiviert, und wenn false oder 'build' gesetzt wird, bleibt der Optimierer während der Entwicklung aktiviert.

Um den Optimierer vollständig zu deaktivieren, verwenden Sie optimizeDeps.noDiscovery: true, um die automatische Erkennung von Abhängigkeiten zu unterbinden und lassen Sie optimizeDeps.include undefiniert oder leer.

WARNING

Die Optimierung von Abhängigkeiten während der Build-Zeit war eine experimentelle Funktion. Projekte, die diese Strategie ausprobierten, entfernten auch @rollup/plugin-commonjs mit build.commonjsOptions: { include: [] }. Wenn Sie dies getan haben, wird eine Warnung Sie dazu anleiten, dies wieder zu aktivieren, um beim Bündeln nur CJS-Pakete zu unterstützen.

optimizeDeps.needsInterop

  • Experimentell
  • Typ: string[] Erzwingt ESM-Interop beim Importieren dieser Abhängigkeiten. Vite kann ordnungsgemäß erkennen, wann eine Abhängigkeit Interop benötigt, daher ist diese Option im Allgemeinen nicht erforderlich. Unterschiedliche Kombinationen von Abhängigkeiten könnten jedoch dazu führen, dass einige von ihnen unterschiedlich vorab gebündelt werden. Wenn dies für eine Ihrer Abhängigkeiten der Fall ist, erhalten Sie eine Warnung und es wird vorgeschlagen, den Paketnamen in diesem Array in Ihrer Konfiguration hinzuzufügen.

Veröffentlicht unter der MIT-Lizenz. (3ee746c7)