Stellen Sie Ihre Frage und erhalten Sie einen Resümee des Dokuments, indem Sie diese Seite und den AI-Anbieter Ihrer Wahl referenzieren
Dieses Dokument ist veraltet, die Basisversion wurde aktualisiert am 25. Juni 2026.
Zur englischen Doku gehenVersionshistorie
- "Dokumentation initialisiert"v8.0.021.1.2026
Der Inhalt dieser Seite wurde mit einer KI übersetzt.
Den englischen Originaltext ansehenIf you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
intlayerPrune Vite Plugin Dokumentation
Das intlayerPrune Vite-Plugin wird verwendet, um ungenutzte Wörterbücher aus Ihrem Anwendungs-Bundle mittels Tree-Shaking zu entfernen. Dadurch wird die endgültige Bundle-Größe reduziert, da nur die notwendigen mehrsprachigen Inhalte enthalten bleiben.
Verwendung
As part of intlayer() (recommended)
Enable pruning through your Intlayer config and the main plugin handles everything:
Kopieren Sie den Code in die Zwischenablage
// intlayer.config.tsimport { defineConfig } from "intlayer";export default defineConfig({ build: { optimize: true, // aktiviert sowohl Pruning als auch Minifizierung },});Kopieren Sie den Code in die Zwischenablage
// vite.config.tsimport { defineConfig } from "vite";import { intlayer } from "vite-intlayer";export default defineConfig({ plugins: [intlayer()],});Standalone
Wenn Sie den Plugin-Stack manuell zusammenstellen, teilen intlayerPrune und intlayerMinify ein PruneContext-Objekt, das einmal erstellt und an beide übergeben werden muss:
Kopieren Sie den Code in die Zwischenablage
// vite.config.tsimport { defineConfig } from "vite";import { intlayerPrune, intlayerMinify } from "vite-intlayer";import { createPruneContext } from "@intlayer/babel";import { getConfiguration } from "@intlayer/config/node";const intlayerConfig = getConfiguration();const pruneContext = createPruneContext();export default defineConfig({ plugins: [ intlayerPrune(intlayerConfig, pruneContext), intlayerMinify(intlayerConfig, pruneContext), // optional, liest aus demselben Kontext ],});Funktionsweise
1. Nutzungsanalyse (buildStart)
Während buildStart scannt das intlayerOptimize-Plugin (auch Teil von intlayer()) jede Komponenten-Quelldatei in build.filesList. Für jeden useIntlayer('key')- oder getIntlayer('key')-Aufruf wird genau aufgezeichnet, auf welche Felder zugegriffen wird, z. B.:
Kopieren Sie den Code in die Zwischenablage
const { title, description } = useIntlayer("myDict");// records: myDict → { title, description }Dies erstellt pruneContext.fieldUsageMap, bevor transform-Aufrufe ausgeführt werden.
2. JSON Pruning (transform, enforce: 'pre')
Wenn Vite eine kompilierte Dictionary-JSON-Datei verarbeitet, fängt intlayerPrune sie vor Vites integrierter JSON → ESM-Konvertierung ab. Es liest die Feldnutzungs-Map aus pruneContext und entfernt alle Content-Felder, die nicht im aufgezeichneten Usage-Set enthalten sind.
Zwei Content-Formen werden unterstützt:
- Static dictionaries —
{ nodeType: "translation", translation: { en: {...}, fr: {...} } }. Felder werden pro Locale innerhalb vontranslationentfernt. - Dynamic (per-locale) dictionaries — flach
{ fieldA: ..., fieldB: ... }. Felder werden auf oberster Ebene entfernt.
3. Edge cases
Falls die Inhaltsstruktur eines Wörterbuchs nicht erkannt werden kann (z. B. eine ungewöhnliche verschachtelte Form), wird sie zu pruneContext.dictionariesWithEdgeCases hinzugefügt und bleibt unverändert. Eine Warnung wird protokolliert. intlayerMinify überspringt diese Wörterbücher ebenfalls.
4. Field-rename map
Wenn das Pruning erfolgreich ist, schreibt intlayerPrune auch pruneContext.dictionaryKeyToFieldRenameMap — eine Zuordnung von ursprünglichen Feldnamen zu kurzen Aliasen. intlayerMinify liest diese Map, um Felder in der Ausgabe-JSON umzubenennen, und der Babel-Umbenennungs-Pass von intlayerOptimize aktualisiert entsprechend Eigenschaftszugriffe in Quelldateien.
Aktivierungsbedingungen
intlayerPrune ist aktiv nur wenn alle folgenden Bedingungen erfüllt sind:
- Der Vite-Befehl ist
build. build.optimizeisttrue(oderundefined, was standardmäßigtruefür Builds ist).build.purgeisttruein Ihrer Intlayer-Konfiguration.
Es wird automatisch deaktiviert, wenn editor.enabled true ist, da der Editor den vollständigen Dictionary-Inhalt benötigt.