Faça sua pergunta e obtenha um resumo do documento referenciando esta página e o provedor AI de sua escolha
Histórico de versões
- "Inicialização da doc"v9.0.025/06/2026
O conteúdo desta página foi traduzido com uma IA.
Veja a última versão do conteúdo original em 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
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
Copiar o código para a área de transferência
// 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:
- O comando do Vite é
build(nãoserve/ dev). build.optimizeétrue(ouundefined, que assume o padrãotruepara builds).build.minifyétruena 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:
Copiar o código para a área de transferência
// 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.