Autor:
    Criação:2026-06-25Última atualização:2026-06-25

    intlayerMinify

    O intlayerMinify é um plugin do Vite que minifica arquivos JSON de dicionário compilados durante um build de produção. Ele remove todos os espaços em branco desnecessários e, quando combinado com o intlayerPrune, opcionalmente renomeia os nomes dos campos de conteúdo para apelidos (aliases) alfabéticos curtos (a, b, c, …) para reduzir ainda mais o tamanho do bundle.

    O plugin já está incluído e configurado automaticamente quando você usa o intlayer(). Você só precisa registrá-lo manualmente se estiver compondo a pilha de plugins por conta própria.

    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),  ],});

    Condições de ativação

    O intlayerMinify fica ativo apenas quando todas as três condições a seguir forem verdadeiras:

    1. O comando do Vite é build (não serve / dev).
    2. build.optimize é true (ou undefined, que assume o padrão true para builds).
    3. build.minify é true na sua configuração do Intlayer.

    Ele é desativado automaticamente quando editor.enabled é true porque o editor precisa do conteúdo do dicionário completo e legível por humanos.

    O que é minificado

    O plugin tem como alvo dois locais de dicionário (conforme resolvido a partir de intlayer.system):

    • dictionariesDir — dicionários estáticos de todos os idiomas (ex: .intlayer/dictionaries/*.json)
    • dynamicDictionariesDir — dicionários dinâmicos por idioma
    Os dicionários no modo fetch (fetchDictionariesDir) nunca são minificados porque são servidos a partir de uma API remota em tempo de execução usando seus nomes de campo originais. Renomear os campos criaria uma incompatibilidade entre a resposta do servidor e os acessos às propriedades no lado do cliente.

    Ofuscação de nomes de campos (minificação de propriedades)

    Quando o intlayerPrune analisa o código-fonte e preenche pruneContext.dictionaryKeyToFieldRenameMap, o intlayerMinify também renomeia os nomes dos campos de conteúdo para aliases curtos. Por exemplo:

    json
    // antes{ "key": "myDict", "content": { "title": "Hello", "description": "World" } }// depois (com ofuscação){ "key": "myDict", "content": { "a": "Hello", "b": "World" } }

    Os acessos correspondentes às propriedades do arquivo fonte são renomeados pela passagem do Babel dentro do intlayerOptimize, de modo que o comportamento em tempo de execução permanece inalterado.

    Campos internos do Intlayer (nodeType, translation, etc.) nunca são renomeados.

    Dicionários de casos extremos (Edge-cases)

    Dicionários sinalizados em pruneContext.dictionariesWithEdgeCases (anomalias estruturais detectadas durante a fase de eliminação) são ignorados inteiramente — não são minificados nem ofuscados — para evitar o envio de dados corrompidos.

    Grupos qualificados (coleções / variantes / registros meta)

    Para dicionários com uma matriz qualifierTypes (coleções, variantes e registros meta), o plugin preserva a matriz qualifierTypes e o mapa lateral meta literalmente. Apenas as entradas de content têm seus nomes de campo ofuscados. As chaves compostas (usadas para correspondência de seletores em tempo de execução) nunca são tocadas.