Haz tu pregunta y obtén un resumen del documento referenciando esta página y el proveedor AI de tu elección
Este documento está desactualizado, la versión base se actualizó el 25 de junio de 2026.
Ir a la documentación en inglésHistorial de versiones
- "Inicialización de la documentación"v8.0.021/1/2026
El contenido de esta página ha sido traducido con una IA.
Ver la última versión del contenido original en inglésIf 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
Documentación del plugin intlayerPrune para Vite
El plugin intlayerPrune para Vite se utiliza para aplicar tree-shaking y eliminar los diccionarios no utilizados del bundle de tu aplicación. Esto ayuda a reducir el tamaño final del bundle incluyendo únicamente el contenido multilingüe necesario.
Uso
Como parte de intlayer() (recomendado)
Habilita la poda a través de tu configuración de Intlayer y el plugin principal se encarga de todo:
Copiar el código al portapapeles
// intlayer.config.tsimport { defineConfig } from "intlayer";export default defineConfig({ build: { optimize: true, // habilita tanto poda como minificación },});Copiar el código al portapapeles
// vite.config.tsimport { defineConfig } from "vite";import { intlayer } from "vite-intlayer";export default defineConfig({ plugins: [intlayer()],});Independiente
Si está componiendo manualmente la pila de plugins, intlayerPrune e intlayerMinify comparten un objeto PruneContext que debe crearse una vez y pasarse a ambos:
Copiar el código al portapapeles
// 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), // opcional, lee del mismo contexto ],});Cómo funciona
1. Análisis de uso (buildStart)
Durante buildStart, el plugin intlayerOptimize (también parte de intlayer()) escanea cada archivo de componente fuente listado en build.filesList. Para cada llamada useIntlayer('key') o getIntlayer('key'), registra exactamente qué campos se acceden, por ejemplo:
Copiar el código al portapapeles
const { title, description } = useIntlayer("myDict");// registra: myDict → { title, description }Esto construye pruneContext.fieldUsageMap antes de que se ejecuten las llamadas 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. Casos especiales
Si la estructura de contenido de un diccionario no puede ser reconocida (por ejemplo, una forma anidada inusual), se añade a pruneContext.dictionariesWithEdgeCases y se deja sin modificar. Se registra una advertencia. intlayerMinify también omite estos diccionarios.
4. Mapa de renombrado de campos
Cuando la poda tiene éxito, intlayerPrune también escribe pruneContext.dictionaryKeyToFieldRenameMap — un mapeo de nombres de campos originales a alias cortos. intlayerMinify lee este mapa para renombrar campos en el JSON de salida, y el paso de renombrado de Babel de intlayerOptimize actualiza los accesos a propiedades en los archivos de origen en consecuencia.
Descripción
El plugin analiza tu código fuente para identificar qué claves de diccionario se usan realmente. A continuación elimina cualquier contenido no utilizado de los archivos de diccionario empaquetados. Esto es especialmente útil en proyectos grandes con muchos diccionarios donde solo se utiliza un subconjunto en páginas o componentes específicos.