Autor:
    Creación:2026-06-25Última actualización:2026-06-25

    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

    ts
    // 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:

    1. El comando de Vite es build (no serve / dev).
    2. build.optimize es true (o undefined, que por defecto es true para compilaciones).
    3. build.minify es true en 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:

    json
    // 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.