Haz tu pregunta y obtén un resumen del documento referenciando esta página y el proveedor AI de tu elección
Historial de versiones
- "Inicialización de doc"v9.0.025/6/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
intlayerMinify
intlayerMinify es un plugin de Vite que minifica archivos JSON de diccionarios compilados durante una compilación de producción. Elimina todos los espacios en blanco innecesarios y, cuando se combina con intlayerPrune, opcionalmente renombra los nombres de los campos de contenido a alias alfabéticos cortos (a, b, c, ...) para reducir aún más el tamaño del bundle.
El plugin ya está incluido y configurado automáticamente cuando utiliza intlayer(). Solo necesita registrarlo manualmente si está componiendo la pila de plugins usted mismo.
Uso
Copiar el código al portapapeles
// 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), ],});Condiciones de activación
intlayerMinify está activo solo cuando se cumplen las tres condiciones siguientes:
- El comando de Vite es
build(noserve/ dev). build.optimizeestrue(oundefined, que por defecto estruepara compilaciones).build.minifyestrueen su configuración de Intlayer.
Se desactiva automáticamente cuando editor.enabled es true porque el editor necesita el contenido del diccionario completo y legible por humanos.
Qué se minifica
El plugin apunta a dos ubicaciones de diccionarios (según lo resuelto a partir de intlayer.system):
dictionariesDir— diccionarios estáticos para todos los idiomas (por ejemplo,.intlayer/dictionaries/*.json)dynamicDictionariesDir— diccionarios dinámicos por idioma
Los diccionarios en modo fetch (fetchDictionariesDir) nunca se minifican porque se sirven desde una API remota en tiempo de ejecución utilizando sus nombres de campo originales. Cambiar el nombre de los campos crearía una discrepancia entre la respuesta del servidor y los accesos a propiedades en el lado del cliente.
Ofuscación de nombres de campo (minificación de propiedades)
Cuando intlayerPrune ha analizado el código fuente y ha llenado pruneContext.dictionaryKeyToFieldRenameMap, intlayerMinify también cambia el nombre de los campos de contenido a alias cortos. Por ejemplo:
Copiar el código al portapapeles
// antes{ "key": "myDict", "content": { "title": "Hello", "description": "World" } }// después (con ofuscación){ "key": "myDict", "content": { "a": "Hello", "b": "World" } }Los accesos a propiedades de archivos fuente correspondientes se renombran mediante el paso de Babel dentro de intlayerOptimize, por lo que el comportamiento en tiempo de ejecución no cambia.
Los campos internos de Intlayer (nodeType, translation, etc.) nunca se renombran.
Dicionarios de casos extremos (Edge cases)
Los diccionarios marcados en pruneContext.dictionariesWithEdgeCases (anomalías estructurales detectadas durante la fase de prune) se omiten por completo — ni se minifican ni se ofuscan — para evitar el envío de datos dañados.
Grupos calificados (colecciones / variantes / registros meta)
Para diccionarios con una matriz qualifierTypes (colecciones, variantes y registros meta), el plugin conserva la matriz qualifierTypes y el mapa lateral meta literalmente. Solo las entradas de content tienen sus nombres de campo ofuscados. Las claves compuestas (utilizadas para la coincidencia de selectores en tiempo de ejecución) nunca se tocan.