Pose una domanda e ottieni un riassunto del documento facendo riferimento a questa pagina e al provider AI di tua scelta
Questo documento non è aggiornato, la versione base è stata aggiornata il 25 giugno 2026.
Vai alla documentazione in ingleseCronologia delle versioni
- "Documentazione iniziale"v8.0.021/01/2026
Il contenuto di questa pagina è stato tradotto con un'IA.
Vedi l'ultima versione del contenuto originale in ingleseSe hai un’idea per migliorare questa documentazione, non esitare a contribuire inviando una pull request su GitHub.
Collegamento GitHub alla documentazioneCopia il Markdown del documento nella porta-documenti
Documentazione del plugin Vite intlayerPrune
Il plugin Vite intlayerPrune viene utilizzato per eseguire tree-shaking ed eliminare i dizionari non utilizzati dal bundle della tua applicazione. Questo aiuta a ridurre la dimensione finale del bundle includendo solo i contenuti multilingua necessari.
Il plugin è già incluso e configurato automaticamente quando utilizzi intlayer(). Devi registrarlo manualmente solo se stai componendo lo stack di plugin da solo.
Utilizzo
As part of intlayer() (recommended)
Abilita il pruning tramite la configurazione di Intlayer e il plugin principale gestisce tutto:
Copiare il codice nella clipboard
Copiare il codice nella clipboard
Standalone
Se stai componendo lo stack di plugin manualmente, intlayerPrune e intlayerMinify condividono un oggetto PruneContext che deve essere creato una sola volta e passato a entrambi:
Copiare il codice nella clipboard
Come funziona
1. Analisi dell'utilizzo (buildStart)
Durante buildStart, il plugin intlayerOptimize (anche parte di intlayer()) scansiona ogni file sorgente del componente elencato in build.filesList. Per ogni chiamata useIntlayer('key') o getIntlayer('key'), registra esattamente quali campi sono accessibili, ad es.:
Copiare il codice nella clipboard
Questo costruisce pruneContext.fieldUsageMap prima che vengano eseguite le chiamate transform.
2. JSON pruning (transform, enforce: 'pre')
When Vite processes a compiled dictionary JSON file, intlayerPrune intercepts it before Vite's built-in JSON → ESM conversion. It reads the field-usage map from pruneContext and removes any content field that is not in the recorded usage set.
Two content shapes are supported:
- Static dictionaries —
{ nodeType: "translation", translation: { en: {...}, fr: {...} } }. Fields are pruned per-locale insidetranslation. - Dynamic (per-locale) dictionaries — flat
{ fieldA: ..., fieldB: ... }. Fields are pruned at the top level.
3. Edge cases
Se la struttura del contenuto di un dizionario non può essere riconosciuta (ad esempio, una forma nidificata inusuale), viene aggiunta a pruneContext.dictionariesWithEdgeCases e lasciata intatta. Un avviso viene registrato. intlayerMinify salta anche questi dizionari.
4. Field-rename map
Quando la potatura ha successo, intlayerPrune scrive anche pruneContext.dictionaryKeyToFieldRenameMap — una mappatura dai nomi di campo originali agli alias brevi. intlayerMinify legge questa mappa per rinominare i campi nel JSON di output, e il pass di ridenominazione Babel di intlayerOptimize aggiorna gli accessi alle proprietà nei file sorgente di conseguenza.
Condizioni di attivazione
intlayerPrune è attivo solo quando tutte le seguenti condizioni sono vere:
- Il comando Vite è
build. build.optimizeètrue(oppureundefined, che di default ètrueper i build).build.purgeètruenella tua configurazione Intlayer.
Rimane attivo quando editor.enabled è true: l'editor visuale risolve ogni modifica tramite dictionaryKey + keyPath rispetto ai dizionari non uniti, che questo plugin non tocca mai, e un campo eliminato è un campo che nessun componente legge — quindi non viene mai renderizzato né selezionabile nella pagina.
