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
- "`purge` e `minify` agora funcionam no Next.js através do `@intlayer/swc` — nenhum `babel.config.js` necessário"v9.2.109/08/2026
- "Listar os plugins Babel na ordem de pipeline exigida (extract → purge → minify → optimize) nas tabelas de referência"v8.12.024/06/2026
- "Adicionado `intlayerPurgeBabelPlugin` e `intlayerMinifyBabelPlugin` para Babel/Webpack; esclarecimento do pipeline de plugins"v8.12.007/06/2026
- "Adicionadas opções `minify` e `purge` para configuração de build"v8.7.008/04/2026
O conteúdo desta página foi traduzido com uma IA.
Veja a última versão do conteúdo original em inglêsSe você tiver uma ideia para melhorar esta documentação, sinta-se à vontade para contribuir enviando uma pull request no GitHub.
Link do GitHub para a documentaçãoCopiar o Markdown do documento para a área de transferência
Otimizando o Tamanho e a Performance do Bundle i18n
Um dos desafios mais comuns em soluções tradicionais de i18n focadas em uso de arquivos JSON está em gerenciar de modo hábil o tamanho do conteúdo. Caso os desenvolvedores não separem o conteúdo de forma fragmentada, será corriqueiro que os usuários acabem sofrendo impactos de tempo em prol de baixar todo e qualquer vestígio traducional e global em cada visita a página mesmo quando for necessário ler só uma única variante.
Por exemplo, um aplicativo com 10 páginas traduzido a título de abranger 10 línguas traria uma consequência ao usuário final onde desnecessariamente lidaria com os conteúdos base de mais de 100 páginas, quando a real métrica seriam apenas os dados de uma única rota em uso real. Como reflexo final ocorre muito estorno e sobrecarregamento na sua rede causando demora na carga global de dados.
A lógica de Intlayer supera essa adversidade empregando fatores como a otimização de execução de compilação (build-time optimization). É um cenário que abrange de frente análises na arquitetura nativa com intenção em entender puramente quais dicionários acabam compondo partes exclusivas relativas a cada componente sem sobrecarregar toda sua base com dicionários sem efetividade imediata.
Índice
Faça uma varredura sobre seu bundle
Aprofundar nos bastidores das métricas que moldam o próprio bundle fará com que consiga achar focos cruciais em JSON's não compactos e traçar melhor um planejamento adequado voltado ao code-splitting apropriado do escopo. Tais suportes em formato de ferramentas operam sobre o núcleo dos módulos construindo treemaps visuais do formato final indicando as proporções globais perante a base gerada na biblioteca de destino.
Vite / Rollup
O Vite usa o construtor subjacente pautado ao Rollup. Ao adotar o pacote relativo de rollup-plugin-visualizer o programador usufrui de toda interatividade construída pelo HTML exibindo a natureza compactada base referenciando todo seu agrupamento gráfico de extensões.
Copiar o código para a área de transferência
Copiar o código para a área de transferência
Next.js (Turbopack)
Voltado a uso no ecossistema App Router e também ao Turbopack, esse formato interno e focado em ecossistema experimental nativo fornece apoio irrestrito perante dependências de base sem envolver extensões extraoficiais.
Copiar o código para a área de transferência
Next.js (Webpack)
Caso implemente o construtor padronizado padrão em arquitetura de Next.js com foco em Webpack, proceda visando obter os utilitários da vertente base no construtor de formato bundle analyzer.
Copiar o código para a área de transferência
Copiar o código para a área de transferência
Parâmetro de uso construtivo:
Copiar o código para a área de transferência
Configurações de Padrão do Webpack
Tratativas associadas ao React na adoção pura baseada no uso preterido do "Create React App" (com modo 'eject' previamente inicializado) sem falar do Angular e outras diretrizes preestabelecidas sobre as margens baseadas pelo escopo padrão do webpack-bundle-analyzer.
Copiar o código para a área de transferência
Copiar o código para a área de transferência
Como a Base Opera
As vertentes baseadas perante os módulos dinâmicos referenciados com apoio do uso contínuo preterido pautam perante implementações focadas nos propósitos componentes e pontuais. Em relação aos panoramas convencionais (globais) seu esquema se propaga mediante definições internas sem vazamento entre funções distintas. Toda compilação associada sob as etapas interage num procedimento naturalizado em construtos:
- Foca-se em Analisar suas diretrizes atrelando suas passagens por conta da estrutura orientada da
useIntlayer. - Trata sobre como ele Constrói referenciando de fato o corpo interativo gerado aos perfis do escopo.
- Propaga em fator base na intenção voltada a Substituir a premissa declarada da base da função
useIntlayerengajando assim otimizações construtivas perante o foco atrelado a sua própria implementação.
Sob este alinhamento as propostas adquirem a certeza de:
- Retirar por definitivo e excluir os conteúdos irrelevantes do núcleo que acabam integrando os "dead codes" das rotas componentes.
- Estabelecer foco atrelado e inerente em propor a ativação lazy com os módulos adjacentes do bloco e dos trechos lazy dos componentes e partes.
O Que Referencia Em Respeito A Plugins
As vertentes pautadas do ecossistema otimizado base pelo Intlayer consistem num emaranhado formatado e distinto fragmentados entre pequenos ecossistemas. A intenção dessa arquitetura isolada propõe combater as propagações acidentais perante o setup base para com configurações irregulares em caso de desconhecimento perante o foco exato em uso e o objetivo da sua essência construtiva isolada.
Plugins Integrados Para Com Babel (@intlayer/babel)
Este ramo abrange puramente escopos direcionados e voltados ao processo em setups no núcleo interno de implementações em formato Webpack operando com arquivos predefinidos nas bases (como é o caso natural do Babel associado de base, Webpack modular customizado em sua integridade nativa do CRA entre outros propósitos da extensão babel.config.js ).
A tabela abaixo os lista na ordem de pipeline exigida (a mesma ordem em que devem aparecer no babel.config.js):
Abrir a tabela em um modal para ver todo o conteúdo claramente
| Funções do Plugin Base | Fatores Práticos Do Recurso E Suas Integrações Com Componentes |
|---|---|
intlayerExtractBabelPlugin | Percorre todo núcleo do escopo com premissa modular ligando fatores associativos entre funções .content.ts com as propostas associadas à destinação em pastas .intlayer/ |
intlayerPurgeBabelPlugin | Mapeia e integra lógicas puramente atreladas a varreduras com intento final na premissa base de descartar os campos sem uso das diretivas com base final dos dicionários |
intlayerMinifyBabelPlugin | Transcreve sua chave matriz base na nomeclatura compacta sob a extensão de referências nativas alfabéticas limitadas em seus núcleos (title → a) sob suas origens JSON |
intlayerOptimizeBabelPlugin | Adota premissas nativas mudando o sentido focado de useIntlayer('key') para abranger a otimizada base useDictionary(hash) gerindo implementações no escopo do import |
Cuidado Atrelado Com A Ordem Da Execução Preestabelecida Do Arquivo Principal: O esquema atrelado com os focos das bases de expurgo (purge) e premissas curtas em definições (minify) tendem inevitavelmente estarem e persistirem em um nível que antecede de antemão e antes que se executem e apliquem o método referencial em otimização (optimize) na base primária do arquivo nativobabel.config.js. Se o optimize operar logo em instâncias prematuras o registro das senhas chave tendem a se omitir não proporcionando suporte base o bastante nas partes do escopo e apagando registros nativos sobre premissas das matrizes JSON que deverão ser mapeadas na função da execução seguinte.
Tais modelos adquirem opções e propósitos associados com integrações perante helpers nativos pautando perante leitura formatada para leitura de parâmetros interligados no esquema base inicial do intlayer.config.ts:
Abrir a tabela em um modal para ver todo o conteúdo claramente
| Helpers de Opcionais | Integração Destinada Relacionada Ao Base |
|---|---|
getExtractPluginOptions() | intlayerExtractBabelPlugin |
getPurgePluginOptions() | intlayerPurgeBabelPlugin |
getMinifyPluginOptions() | intlayerMinifyBabelPlugin |
getOptimizePluginOptions() | intlayerOptimizeBabelPlugin |
O Setup Por Trás De Vite (vite-intlayer)
O usuário da base focada na plataforma gerada do esquema no Vite não fará manipulações com tais recursos predefinindo os passos com métodos e formatações exaustivas e diretas visto não ser preciso em seu formato automatizado que interage mediante execuções da diretiva e formato focado withIntlayer() dentro de sua predefinição ligada ao módulo e base em vite.config.ts. Extensões relativas aos recursos build.purge ou da implementação em esquema e base em build.minify operam dentro de referências ligadas com suporte atrelado do intlayer.config.ts.
Abrir a tabela em um modal para ver todo o conteúdo claramente
| Modelo Integrado Ao Núcleo Do Vite | Relações E Bases De Semelhanças Nativas |
|---|---|
| Usage analyzer | Corresponde como fator e esquema nativo analítico e idêntico atrelado a varredura associada ao intlayerPurgeBabelPlugin |
| Dictionary prune | Reflete referências voltadas no suporte preterido perante processos paralelos construtivos do formato em intlayerPurgeBabelPlugin |
| Dictionary minify | Base análoga e integrada de premissas com ligações nos escritos pautando referências no molde JSON nativo voltada do intlayerMinifyBabelPlugin |
| Babel transform | Associa parâmetros no suporte transformativo que atua nas esferas associativas dos diretórios voltados do renome natural em conjunto focado ao intlayerMinifyBabelPlugin e também ao respectivo processo preestabelecido da função modular intlayerOptimizeBabelPlugin |
Plugin SWC (@intlayer/swc)
Os usuários do Next.js também nunca configuram isto diretamente. Desde a v9.2.1, o withIntlayer() no next.config.ts executa todo o pipeline — purge, minificação e reescrita de imports — apenas a partir das flags build.purge e build.minify.
O trabalho é dividido em dois, porque um plugin Wasm do SWC transforma um arquivo por vez e não tem acesso ao sistema de arquivos:
Abrir a tabela em um modal para ver todo o conteúdo claramente
| Passagem | Onde é executada | O que faz |
|---|---|---|
| Análise de uso + purge/minificação do JSON | Node, dentro de withIntlayer() | Lê cada arquivo-fonte de componente, reescreve .intlayer/**/*.json e produz as tabelas de renomeação |
Reescrita do código-fonte (content.title → .a) | @intlayer/swc (Wasm) | Aplica as tabelas de renomeação aos acessos de propriedade correspondentes no seu código |
Reescrita de imports (useIntlayer → dict) | @intlayer/swc (Wasm) | Igual ao intlayerOptimizeBabelPlugin |
Decidir quais campos não são usados e qual alias cada um recebe exige estado entre arquivos e E/S de arquivos, então essa metade roda no Node; o plugin SWC recebe apenas as tabelas resultantes.
Etapas Em Modos Variados (Plataformas)
Next.js
O Next.js requer o plugin @intlayer/swc, porque o Next.js usa SWC para as builds. Desde a v9.2.1, este único pacote cobre todo o pipeline — otimização (reescrita de imports), purge e minificação.
Este recurso opera de maneira indireta preestabelecida na função que o construtor opera base com propósitos sem estarem enquadrados nativamente uma vez construtor SWC e sua arquitetura encontrarem cenários passíveis ainda experimentais por propósitos do projeto base no esquema das funcionalidades e das perspectivas. Tais perspectivas podem tender a serem diferentes em longo prazo por propostas alheias e afins.
Next.js 16.1.0 é a versão mínima. É a primeira versão construída sobre a ABI de plugins Wasm do SWC compatível com versões futuras; versões anteriores rejeitam o plugin. O withIntlayer lê a sua versão do Next.js e simplesmente não registra o plugin abaixo da 16.1.0 — essas builds continuam a ser bem-sucedidas, apenas rodam sem a otimização de bundle.
Copiar o código para a área de transferência
Copiar o código para a área de transferência
Os processos automatizam os engajamentos atrelando sua extensão integrativa assim em propostas isoladas.
As passagens de purge e minificação (remoção e renomeação de campos) não exigem nenhum pacote adicional nem babel.config.js. Envolva a sua configuração com withIntlayer e ative as flags no intlayer.config.ts:
Copiar o código para a área de transferência
Copiar o código para a área de transferência
Durante o next build, o withIntlayer analisa seus fontes, reescreve os dicionários compilados e repassa as tabelas de renomeação resultantes ao @intlayer/swc, que atualiza os acessos de propriedade correspondentes no seu código.
Use owithIntlayerassíncrono, não owithIntlayerSync. A variante síncrona não executa o pipeline de análise, então purge e minificação não têm efeito com ela.
Purge e minificação são executados apenas nonext build— o pipeline de otimização fica desligado durante onext dev.
Eles também são desativados quando chamadores de adaptadores de compatibilidade estão configurados (swcExtraCallers, definidos pelos pacotes de compatibilidade como@intlayer/next-intlou@intlayer/react-i18next): esses pontos de chamada são invisíveis para o analisador de uso, então o purge removeria campos que o código ainda lê. A reescrita de imports permanece ativa.
Versões anteriores (antes da 9.2.1) exigiam @intlayer/babel e um babel.config.js declarando intlayerPurgeBabelPlugin e intlayerMinifyBabelPlugin. Esse arquivo não é mais necessário e pode ser excluído.
Vite
Esses fluxos não possuem propósitos na extensão externa a não por meio da extensão preestabelecida no diretório focado e integrado ao modelo base @intlayer/babel.
Proporcione habilitação dos cenários em implementações do arquivo e diretrizes com focos integrados das diretivas voltadas das vertentes associativas do construtor:
Copiar o código para a área de transferência
Webpack (E implementações ligadas em bases modulares preteridas por setups focados do tipo formatado e estendido no formato do Babel e seus ecossistemas relativos no contexto base de escopos)
Tratativas associadas perante integrações preestabelecidas nas integrações do @intlayer/babel:
Copiar o código para a área de transferência
Integrar ligações do plugin mediante a respectiva babel.config.js nos parâmetros focados no preestabelecimento relativo a referências:
Copiar o código para a área de transferência
Sobre as Bases (Configuration)
Fica com bases focadas aos seus usos e restrições integrando na propriedade de construção (build):
Copiar o código para a área de transferência
Com propósito associativo do foco natural do optimize o seu cenário primário atrelado do suporte em predefinição padrão sem interferências na base definida focado no formato matriz (undefined) acaba tendendo ao escopo das soluções sem restrições base sendo mantido naturalmente pautado com diretivas nas maiorias focado nos parâmetros preestabelecidos com parâmetros focados atrelados nos direcionamentos dos construtos das partes matriz do seu suporte atrelado de cenários associativos de foco natural.
Consulte a extensão associada perante premissas relacionadas às formatações nas configurações em Configurações
Os Fatores Sobre Integrações E Opções
Abrir a tabela em um modal para ver todo o conteúdo claramente
| Fator do Propósito Construtivo Relativo | Suportes e Tipologias | Default Base Constante | Diretriz das Definições De Escopos Construtivos |
|---|---|---|---|
optimize | boolean / undefined | undefined | Integração em otimizações formatando suporte sem bases irrelevantes ou em produção do processo na arquitetura final sem afetar bases na construtiva referencial sem minificar ou excluir parâmetros irrelevantes associados e com base com parâmetros referenciados no suporte do false na formatação do formato do processo de base da arquitetura final associada sem premissas com ligações nos processos. |
minify | boolean | false | Formata premissas dos campos limitando o formato com parâmetros nas definições atrelados com renomes de matriz convertendo premissas por aliases com letras e limitação associativa. Não provém em esquemas formatados em otimizações que aderem parâmetros no false. |
purge | boolean | false | Processos com foco no decaimento do JSON eliminando focos mortos em propostas preestabelecidas. Sem premissa em funções que aderem no escopo de falso com construtos associativos no false. |
Redução Modular Atrelada Nas Extensões (Minificação De Estruturas Relacionadas)
Esse escopo na minificação construtiva focada a definições do método no build.minify trabalha de maneira com base na otimização que em relação em sua limitação se propagará somente num nível restrito focado a definições JSON base focando sem parâmetros e focado nas exclusões limitando renomes com propósitos na minificação e substituição limitada. Seu bundler é inteiramente nativo e o fator não tem poder transformativo com base externa das exclusões JavaScript base.
Copiar o código para a área de transferência
A diretiva em premissas transcreve a natureza voltando do escopo para ser lida num processo originário limitante nas acessibilidades pautando as referências nas chaves atreladas de propósitos no escopo JSON. A sua extensão no content.title passa o chamado final em content.a.
Copiar o código para a área de transferência
A minificação é ignorada quandooptimizeéfalse. Quandoeditor.enabledétrue, ela continua sendo executada, mas sem a etapa de renomeação de campos — o editor visual resolve as edições por meio dokeyPath, portanto os nomes de campo originais precisam ser preservados.
No Next.js, a minificação também é ignorada quando o @intlayer/swc não está instalado ou não pode ser carregado (Next.js abaixo da 16.1.0). O plugin é a metade que reescreve os acessos no código-fonte, então renomear os dicionários sem ele deixaria seu código lendo nomes de campos que não existem mais.
Dicionários perante processos focados base do tipo no fetch (sob escopo formatado da extensão da variável no método importMode: 'fetch') não são minificados a título em evitar problemas focados na sua essência nativa.
Foco Modular Constante Relativo Em Extensões (Exclusões Focadas)
Analise e determine campos associativos perante varredura focado atrelando o fator das exclusões JSON das extensões no método base build.purge.
Copiar o código para a área de transferência
Como Processar E Exemplificar O Uso Base Das Predefinições E Fatores Modulares No Escopo Do JSON Com Suporte Voltado Em Definições: Em proporções preestabelecidas formatadas na varredura construtiva e voltada base num escopo atrelado perante 5 diretivas no propósito associado atrelando o fator JSON e formato em 2 suportes práticos focados base.
Copiar o código para a área de transferência
A purga é ignorada quandooptimizeéfalse. Ela permanece ativa quandoeditor.enabledétrue— um campo removido não é lido por nenhum componente, então o editor nunca o renderiza. No Next.js, ela também é ignorada quando@intlayer/swcestá indisponível e quando há chamadores de adaptadores de compatibilidade configurados.
Processos perante o uso na purificação também são suspensos perante focos no método nativo que limitam análises do suporte da base com dados referenciados da função de predefinições e diretrizes voltadas atrelando propósitos de extensão.
Parâmetros Analisados Perante Formatos Relacionados Atrelando Extensões Relacionando Configurações Perante Extensões No Escopo Voltado Em Dinâmicas E Estáticas Formatadas (ImportMode)
A título focando de fato limitações atreladas nos propósitos com dados formatados e limitados focado e voltado na expansão modular com propósitos nativos atrelados com premissas em importMode.
Opções em Extensões Constantes Focadas
O método suporta limitação atrelando formato da construção intlayer.config.ts.
Copiar o código para a área de transferência
Em Parâmetros
Você formata no método e diretriz focando premissas nativas e extensivas nos parâmetros do arquivo da sua função com focos em .content.{{ts|tsx|js|jsx|mjs|cjs|json|jsonc|json5|md|mdx|yaml|yml}}.
Copiar o código para a área de transferência
Abrir a tabela em um modal para ver todo o conteúdo claramente
| Fatores Práticos Do Recurso | Fator em Resoluções Integrado | Fator | Funções Do Escopo Base Focado Em Parâmetros |
|---|---|---|---|
importMode | 'static', 'dynamic', 'fetch' | 'static' | Alerta De Foco Obsoleto E Associativo: Uso na formatação focada em definições de dictionary.importMode. |
O importMode atua perante cenários atrelados e dinâmicas nos dados formatados nas funções atrelando propósitos.
1. Formatos Limitados E Modos Modulares Das Funções Básicas E Naturais (default)
As implementações formatadas nativamente atuam no formato com proporções substituindo e limitando a varredura atrelando proporções de construto do formato useIntlayer em vias de focos atrelados nativos perante o useDictionary.
- Suporte Em Referências E Otimizações Preestabelecidas Base No Pro: Formatação sem propósitos de carga extra atrelando sincronização.
- Formatações Opostas (Cons): Sem limitações e minificações. Transcrição sem limitação por conta associada a todo o pacote em cada língua referenciando dados formatados.
- Suporte Ideal Em Modos Modulares Associativos Das Funções Básicas E Naturais Nas Diretivas Voltadas (SPAs): Foco.
Extensão do Formato Relacionado Associativo E Voltado Com Modelos:
Copiar o código para a área de transferência
2. O Método Em Foco Constante Associativo Em Otimizações Modulares Perante Formato Focado Nas Diretivas Nas Propagações Perante Diretórios Focados Relacionando Extensões Formatos No Escopo Dinâmico
O modo adota a exclusão da implementação do tipo de useIntlayer com vias no tipo e focado nativamente na função useDictionaryAsync em modos integrados num cenário no limitante import().
- Pro (Limitações Atreladas Nos Propósitos Com Focos Nas Diretivas Voltadas E Formatações Base Na Árvore de Otimizações Locais): Isolamento na importação. Os idiomas são exclusivos nas cargas atrelando propostas integradas nativas.
- Cons: Triggers limitantes no carregamento atrelado a propósitos de assets.
- Formatos: Bases e blocos robustos focados nos panoramas base.
Modelos:
Copiar o código para a área de transferência
As rotas do pacote e as análises em referências que abrangem propósitos na via limitando as diretivas com suporte em execuções de redeuseIntlayerfocado e voltado ao método da função integrada perante premissas nas definições relativas em extensões base no arquivo.contentpropõe um limite evitando sobrecargas de redes nas requisições. O suporte focado num dicionário é associativo e integrado focando nas restrições preteridas.
3. Fator Fetch Focando No Uso De Bases Atreladas Com Formatos E Predefinições Voltados Na Formatação De Redes Em Escopos Remotos Atrelando Processos Relacionados
Preestabelece no carregamento focado no escopo e limitações em execuções de construtos remotos focando diretivas API e Intlayer Live Sync.
Base:
Copiar o código para a área de transferência
Consulte premissas: CMS
Bases purificadas e otimizadas false nas diretivas construtos atrelando no false nas exclusões JSON e minificadas base na formatação focado no formato com exclusões limitadas num ecossistema remoto focado em API nativa da estrutura matriz de dados referenciados.
Panorama Das Bases Atreladas Focadas Na Formatação Modular Com Propósitos De Extensões Nas Propagações Dos Arquivos Base (Estáticos VS Dinâmicos)
Abrir a tabela em um modal para ver todo o conteúdo claramente
| Formatos E Propagações Focados | Fatores Atrelados Em Diretivas Relativas Base (Estático) | Extensões Formatas E Focadas Com Propósitos Nas Propagações (Dinâmico) |
|---|---|---|
| JS Tamanhos de Bundle | Formatação focada atrelando limites na base irrestrita | Tamanhos da formatação (Exclusividade de limite na via do formato JSON) |
| Formatos Modulares | Propagação focada e instantânea | Atrasa no carregamento no limite |
| Fator na rede | Zero rede base atrelando chamados nativos | Formatação no chamado constante |
| Tree Shaking Base | Formatação no formato nas diretivas de limitações nativas da via constante de arquivos | Limitação voltando da extensão com limites nativos |
| Panorama Nas Acessibilidades Focadas | UIs de limites preestabelecidas limitadas | Textos preestabelecidos em modos focados em vias dinâmicas e constantes globais |
