Autore:
    Creazione:2026-06-25Ultimo aggiornamento:2026-06-25

    intlayerMinify

    intlayerMinify è un plugin Vite che minifica i file JSON del dizionario compilato durante una build di produzione. Rimuove tutti gli spazi vuoti non necessari e, se combinato con intlayerPrune, rinomina opzionalmente i nomi dei campi di contenuto con brevi alias alfabetici (a, b, c, …) per ridurre ulteriormente la dimensione del bundle.

    Il plugin è già incluso e configurato automaticamente quando usi intlayer(). Devi solo registrarlo manualmente se stai componendo lo stack di plugin da solo.

    Utilizzo

    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),  ],});

    Condizioni di attivazione

    intlayerMinify è attivo solo quando sono soddisfatte tutte e tre le seguenti condizioni:

    1. Il comando Vite è build (non serve / dev).
    2. build.optimize è true (o undefined, che per impostazione predefinita è true per le build).
    3. build.minify è true nella tua configurazione Intlayer.

    Viene automaticamente disattivato quando editor.enabled è true perché l'editor ha bisogno del contenuto del dizionario completo e leggibile dall'uomo.

    Cosa viene minificato

    Il plugin prende di mira due posizioni del dizionario (come risolto da intlayer.system):

    • dictionariesDir — dizionari statici per tutte le lingue (es. .intlayer/dictionaries/*.json)
    • dynamicDictionariesDir — dizionari dinamici per lingua
    I dizionari in modalità fetch (fetchDictionariesDir) non vengono mai minificati perché sono serviti da un'API remota a runtime utilizzando i loro nomi di campo originali. La ridenominazione dei campi creerebbe una mancata corrispondenza tra la risposta del server e gli accessi alle proprietà lato client.

    Mascheramento dei nomi dei campi (minificazione delle proprietà)

    Quando intlayerPrune ha analizzato la codebase e popolato pruneContext.dictionaryKeyToFieldRenameMap, intlayerMinify rinomina anche i nomi dei campi di contenuto in brevi alias. Ad esempio:

    json
    // prima{ "key": "myDict", "content": { "title": "Hello", "description": "World" } }// dopo (con mascheramento){ "key": "myDict", "content": { "a": "Hello", "b": "World" } }

    I corrispondenti accessi alle proprietà del file sorgente vengono rinominati dal passaggio Babel all'interno di intlayerOptimize, in modo che il comportamento a runtime rimanga invariato.

    I campi interni di Intlayer (nodeType, translation, ecc.) non vengono mai rinominati.

    Dizionari di casi limite (Edge-cases)

    I dizionari contrassegnati in pruneContext.dictionariesWithEdgeCases (anomalie strutturali rilevate durante la fase di prune) vengono saltati completamente — né minificati né mascherati — per evitare di distribuire dati danneggiati.

    Gruppi qualificati (collezioni / varianti / record meta)

    Per i dizionari con un array qualifierTypes (collezioni, varianti e record meta), il plugin preserva letteralmente l'array qualifierTypes e la mappa laterale meta. Solo per le voci di content viene eseguito il mascheramento dei nomi dei campi. Le chiavi composite (utilizzate per la corrispondenza dei selettori a runtime) non vengono mai toccate.