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 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
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.
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
// intlayer.config.tsimport { defineConfig } from "intlayer";export default defineConfig({ build: { optimize: true, // abilita sia prune che minify },});Copiare il codice nella clipboard
// vite.config.tsimport { defineConfig } from "vite";import { intlayer } from "vite-intlayer";export default defineConfig({ plugins: [intlayer()],});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
// 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), // opzionale, legge dallo stesso contesto ],});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
const { title, description } = useIntlayer("myDict");// registra: myDict → { title, description }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.
È automaticamente disabilitato quando editor.enabled è true perché l'editor necessita del contenuto completo del dizionario.