DocumentosImagensMídiaFerramentas PDF

Minificar JavaScript Online

Otimize o tamanho dos seus bundles JavaScript. Minifique ou formate o código instantaneamente no navegador.

Processed in your browser

JavaScript mais leve, apps mais rápidos

Redução de 40 a 60%

Remove espaços, comentários e encurta variáveis sem alterar a funcionalidade do código.

100% privado

O JS é processado no seu navegador e nunca enviado a qualquer servidor externo.

Bidirecional

Minifique para produção ou formate um JS minificado para leitura e depuração.

Instantâneo

O resultado aparece em milissegundos, sem nenhum processamento no servidor.

Três passos, sem complicação

1

Cole ou faça upload do JavaScript

Cole o código JS diretamente na área de texto ou arraste um arquivo .js. Sem limite de tamanho.

2

Escolha: minificar ou formatar

Minifique para produção, reduzindo variáveis e removendo espaços, ou formate um JS minificado para leitura e depuração.

3

Copie ou baixe o resultado

O JavaScript otimizado aparece instantaneamente. Copie para a área de transferência ou baixe como arquivo.

Ficou com dúvidas?

A minificação de JavaScript remove espaços em branco, comentários e quebras de linha, encurta nomes de variáveis e funções locais (renaming ou mangling) e em alguns casos elimina código morto. O resultado é funcionalmente idêntico ao original, mas significativamente menor, reduzindo o tempo de download e o tempo de parsing pelo motor JS do navegador.

UglifyJS, criado em 2010, foi o primeiro minificador JavaScript amplamente adotado, introduzindo compressão e mangling (renomeação de variáveis). Terser é o sucessor moderno do UglifyJS, compatível com ES2015 e módulos ES modernos. O termo minify é genérico para redução de tamanho. Terser é hoje o padrão de facto, usado internamente por webpack, Vite, Rollup e esbuild.

Tipicamente entre 40% e 60% do tamanho original para código JavaScript bem comentado e formatado. Um arquivo de 200 KB pode ser reduzido para 80 a 120 KB apenas com a minificação. Combinado com compressão gzip ou Brotli, a economia total pode superar 80%. O renaming de variáveis contribui com uma redução adicional de 10% a 20% além da simples remoção de espaços.

O JavaScript minificado pode ser formatado para recuperar uma estrutura legível, mas os nomes de variáveis e funções que foram renomeados não podem ser recuperados. Uma função chamada calcularPagamentoMensal pode ter se tornado apenas a ou b. Sem os source maps originais, o código formatado é funcional mas difícil de entender. Os source maps mapeiam o código minificado de volta ao original e são essenciais para depuração em produção.

Source maps são arquivos com extensão .js.map que criam uma correspondência entre o código minificado ou transpilado e o código-fonte original. Quando ocorre um erro em produção, o navegador usa o source map para exibir o stack trace com os nomes e números de linha originais em vez da versão minificada. Eles são gerados automaticamente pelo webpack com a opção devtool configurada como source-map, pelo Vite com a opção build.sourcemap ativada, ou pelo Terser com o parâmetro --source-map.

Histórico da minificação de JavaScript e otimização de bundles

A minificação de JavaScript tem origem no JSMin, criado por Douglas Crockford em 2001. Crockford observou que o JavaScript enviado ao cliente continha enormes quantidades de espaços em branco e comentários consumindo banda desnecessariamente. O JSMin foi o primeiro compressor sistemático: removia comentários e espaços preservando a semântica da linguagem. Logo depois, o YUI Compressor do Yahoo, lançado em 2007, introduziu o renaming básico de variáveis, estabelecendo as bases da minificação moderna.

Tree-shaking é uma técnica relacionada mas distinta: enquanto a minificação reduz o código existente, o tree-shaking elimina o código que nunca é executado (código morto) analisando o grafo de importações dos módulos ES. O Rollup popularizou o tree-shaking em 2015 e o webpack o adotou na versão 2. O code splitting complementa essas técnicas dividindo o bundle em partes carregadas sob demanda via dynamic import(), reduzindo o JavaScript inicial que o navegador precisa processar.

A ferramenta Lighthouse do Google inclui análise de cobertura de JavaScript (aba Coverage no Chrome DevTools) que identifica qual percentual do JS baixado é efetivamente executado no carregamento inicial. Estudos do HTTP Archive mostram que a página web mediana carrega mais de 400 KB de JavaScript comprimido (mais de 1 MB sem compressão), sendo o recurso que mais prejudica o Time to Interactive (TTI). A adoção de ESM nativo em navegadores modernos e o padrão de módulos com importmaps representa a próxima evolução na entrega eficiente de JavaScript.