Bundle JavaScript pesado: como descobrir quem está engordando o seu site
Seu site baixa 2 MB de JavaScript antes de mostrar qualquer coisa. Veja como descobrir quais bibliotecas estão pesando e o que fazer com elas.
Por Equipe We Codex3 min de leitura
No celular de entrada, cada megabyte de JavaScript leva segundos para ser baixado, interpretado e executado. Antes de otimizar código, descubra o que está dentro do pacote — quase sempre há surpresas.
Enxergue o bundle
Ferramentas como rollup-plugin-visualizer (Vite) ou @next/bundle-analyzer geram um mapa visual de cada arquivo e do peso de cada biblioteca. Em cinco minutos, você vê quem ocupa mais espaço.
Os suspeitos de sempre
- Bibliotecas de data completas com todos os idiomas.
- Pacotes de ícones importados inteiros para usar dez ícones.
- Utilitários genéricos importados por completo.
- Bibliotecas de UI carregando componentes que você não usa.
- Gráficos, mapas, editores e 3D no pacote principal.
- Polyfills para navegadores que ninguém mais usa.
Soluções
- 1.Importe só o necessário:
import debounce from 'lodash/debounce', não a biblioteca inteira. - 2.Troque por alternativas leves — ou pela API nativa do navegador (
Intlpara datas e números). - 3.Divida por rota e carregue o pesado sob demanda (Code splitting por rota no React: carregue só o que a página precisa).
- 4.Remova dependências mortas.
- 5.Defina um orçamento de tamanho por rota e falhe o build se passar.
Scripts de terceiros contam
Chat, pixels, mapas de calor e testes A/B também competem pela thread principal e pioram o INP (INP: o que fazer quando cliques e toques demoram para responder). Carregue-os depois da interação inicial.
O mesmo raciocínio vale para apps React Native (App demora para abrir? Onde investigar o tempo de inicialização).
Veja Performance WPO da We Codex ou fale com a gente.
- JavaScript
- Bundle
- Performance
- React
Resolver de vez, com quem faz isso todo dia
Seu site precisa carregar em menos de um segundo e converter mais?
Este artigo mostra o caminho. A implementação sob medida — o detalhe que muda o resultado no seu caso — é o trabalho da We Codex, empresa de engenharia do grupo Wocom.
Continue lendo
Tudo sobre Web & Performance- Ler artigo
Web & Performance3 min
INP: o que fazer quando cliques e toques demoram para responder
O usuário clica e a página demora para reagir. Isso é INP ruim — a métrica do Google que substituiu o FID. Veja de onde vem o atraso e como reduzi-lo.
- Ler artigo
Web & Performance3 min
Code splitting por rota no React: carregue só o que a página precisa
O visitante abre a página inicial e baixa o código do painel administrativo inteiro. Veja como dividir o JavaScript por rota no React.
- Ler artigo
Mobile3 min
App demora para abrir? Onde investigar o tempo de inicialização
Cada segundo de tela de abertura é um usuário a menos. Veja onde investigar quando o app demora para iniciar e o que costuma resolver.