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ésSi tienes una idea para mejorar esta documentación, no dudes en contribuir enviando una pull request en GitHub.
Enlace de GitHub a la documentaciónCopiar el Markdown del documento a la portapapeles
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.
El plugin ya está incluido y configurado automáticamente cuando usas intlayer(). Solo necesitas registrarlo manualmente si estás componiendo la pila de plugins tú mismo.
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
Copiar el código al portapapeles
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
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
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.
Condiciones de activación
intlayerPrune está activo solo cuando se cumplen todas las siguientes condiciones:
- El comando de Vite es
build. build.optimizeestrue(oundefined, que por defecto estrueen los builds).build.purgeestrueen tu configuración de Intlayer.
Permanece activo cuando editor.enabled es true: el editor visual resuelve cada edición mediante dictionaryKey + keyPath contra los diccionarios sin fusionar, que este plugin nunca toca, y un campo purgado es uno que ningún componente lee — por lo que nunca se renderiza ni se puede seleccionar en la página.
