Autor:
    Erstellung:2026-06-25Letzte Aktualisierung:2026-06-25

    intlayerMinify

    intlayerMinify ist ein Vite-Plugin, das kompilierte Wörterbuch-JSON-Dateien während eines Produktions-Builds minifiziert. Es entfernt alle unnötigen Leerzeichen und benennt in Kombination mit intlayerPrune optional Inhaltsfeldnamen in kurze alphabetische Aliase (a, b, c, …) um, um die Bundle-Größe weiter zu reduzieren.

    Das Plugin ist bereits automatisch enthalten und konfiguriert, wenn Sie intlayer() verwenden. Sie müssen es nur dann manuell registrieren, wenn Sie den Plugin-Stack selbst zusammenstellen.

    Verwendung

    ts
    // vite.config.tsimport { defineConfig } from "vite";import { intlayerMinify, intlayerPrune } from "vite-intlayer";import { createPruneContext } from "@intlayer/babel";const pruneContext = createPruneContext();export default defineConfig({  plugins: [    intlayerPrune(intlayerConfig, pruneContext),    intlayerMinify(intlayerConfig, pruneContext),  ],});

    Aktivierungsbedingungen

    intlayerMinify ist nur aktiv, wenn alle drei folgenden Bedingungen erfüllt sind:

    1. Der Vite-Befehl lautet build (nicht serve / dev).
    2. build.optimize ist true (oder undefined, was standardmäßig true für Builds ist).
    3. build.minify ist in Ihrer Intlayer-Konfiguration auf true gesetzt.

    Es wird automatisch deaktiviert, wenn editor.enabled auf true gesetzt ist, da der Editor den vollständigen, für Menschen lesbaren Wörterbuchinhalt benötigt.

    Was wird minifiziert

    Das Plugin zielt auf zwei Wörterbuchverzeichnisse ab (wie in intlayer.system aufgelöst):

    • dictionariesDir — statische Wörterbücher für alle Sprachen (z. B. .intlayer/dictionaries/*.json)
    • dynamicDictionariesDir — dynamische Wörterbücher pro Sprache
    Wörterbücher im Fetch-Modus (fetchDictionariesDir) werden nie minifiziert, da sie zur Laufzeit von einer Remote-API unter ihren ursprünglichen Feldnamen bereitgestellt werden. Das Umbenennen von Feldern würde eine Diskrepanz zwischen der Serverantwort und den clientseitigen Eigenschaftszugriffen verursachen.

    Feldnamen-Maskierung (Eigenschafts-Minifizierung)

    Wenn intlayerPrune die Codebasis analysiert und pruneContext.dictionaryKeyToFieldRenameMap befüllt hat, benennt intlayerMinify auch Inhaltsfeldnamen in kurze Aliase um. Zum Beispiel:

    json
    // vorher{ "key": "myDict", "content": { "title": "Hello", "description": "World" } }// nachher (mit Maskierung){ "key": "myDict", "content": { "a": "Hello", "b": "World" } }

    Die entsprechenden Eigenschaftszugriffe in den Quelldateien werden durch den Babel-Durchlauf in intlayerOptimize umbenannt, sodass das Laufzeitverhalten unverändert bleibt.

    Interne Intlayer-Felder (nodeType, translation usw.) werden niemals umbenannt.

    Edge-Case-Wörterbücher

    Wörterbücher, die in pruneContext.dictionariesWithEdgeCases gekennzeichnet sind (strukturelle Anomalien, die während der Prune-Phase festgestellt wurden), werden vollständig übersprungen — weder minifiziert noch maskiert —, um die Auslieferung fehlerhafter Daten zu vermeiden.

    Qualifizierte Gruppen (Sammlungen / Varianten / Meta-Einträge)

    Bei Wörterbüchern mit einem qualifierTypes-Array (Sammlungen, Varianten und Meta-Einträge) behält das Plugin das qualifierTypes-Array und das meta-Side-Map wortwörtlich bei. Nur die content-Einträge werden in ihren Feldnamen maskiert. Die zusammengesetzten Schlüssel (die für den Selektor-Abgleich zur Laufzeit verwendet werden) werden niemals berührt.