Pose una domanda e ottieni un riassunto del documento facendo riferimento a questa pagina e al provider AI di tua scelta
Cronologia delle versioni
- "Init doc"v9.0.025/06/2026
Il contenuto di questa pagina è stato tradotto con un'IA.
Vedi l'ultima versione del contenuto originale in ingleseIf 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
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
Copiare il codice nella clipboard
// 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:
- Il comando Vite è
build(nonserve/ dev). build.optimizeètrue(oundefined, che per impostazione predefinita ètrueper le build).build.minifyètruenella 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:
Copiare il codice nella clipboard
// 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.