Minificador de JavaScript

Cole JavaScript para reduzi-lo com o Terser: código morto é removido, nomes são encurtados e os espaços desaparecem. Erros de sintaxe apontam a linha e a coluna exatas.

Roda no seu navegadorSem cadastroNada é enviado

Saída minificada

Como usar: Minificador de JavaScript

  1. Cole seu JavaScript ou abra um arquivo .js.
  2. Escolha as opções: Encurtar nomes reduz variáveis locais, Comprimir reescreve o código em um equivalente menor, Módulo ES habilita import/export no nível superior.
  3. Escolha o alvo ECMAScript suportado pelos navegadores dos seus usuários. ES2020 é seguro para todos os navegadores evergreen.
  4. Confira o tamanho, a economia e a estimativa gzip abaixo da saída.
  5. Copie o código minificado ou baixe-o como output.min.js.

O que faz um minificador de JavaScript?

A minificação deixa o JavaScript menor sem mudar o que ele faz. Esta ferramenta usa o Terser, o minificador por trás de webpack, Vite e Rollup, e aplica três tipos de alterações:

  • Remoção de espaços e comentários: indentação, quebras de linha e comentários não são necessários para o motor JavaScript.
  • Mangling: nomes de variáveis locais e de parâmetros de funções, como subtotal, viram letras únicas. Nomes globais e propriedades de objetos não são tocados, para que sua API pública continue funcionando.
  • Compressão: expressões constantes são pré-calculadas, código inalcançável é removido, instruções if viram ternários e funções curtas são colocadas inline.

Minificar vs. gzip: preciso dos dois?

Sim. Gzip e Brotli comprimem padrões de bytes repetidos na transferência, enquanto a minificação remove bytes que o navegador teria que baixar, analisar e compilar. Um script típico encolhe 40–60% com a minificação e depois mais 60–70% com gzip. O tamanho gzip exibido aqui é uma boa estimativa do que o seu servidor vai realmente enviar.

Mantendo comentários de licença

Muitas licenças open source (MIT, BSD, Apache) exigem que o aviso de copyright acompanhe o código. Por convenção, comentários que começam com /*! ou contêm @license ou @preserve são mantidos quando Manter comentários de licença está ativado.

Quando não minificar manualmente

Se o seu projeto já usa um bundler, deixe que ele minifique os builds de produção e gere source maps para depuração. Um minificador online é ideal para scripts avulsos, snippets para um CMS ou gerenciador de tags, bookmarklets e para ver o quanto um trecho de código pode encolher.

Perguntas frequentes

Meu código é enviado para um servidor?
Não. O Terser roda dentro da aba do seu navegador, então código proprietário nunca sai da sua máquina.
A minificação pode quebrar meu código?
O Terser só aplica transformações que mantêm o comportamento idêntico para JavaScript válido. Código que depende de Function.prototype.toString() ou de nomes de variáveis locais via eval pode ser afetado; nesse caso, desative Encurtar nomes.
Suporta sintaxe moderna como async/await, classes e optional chaining?
Sim. O Terser entende sintaxe ES2022+. A configuração de alvo só controla qual sintaxe a saída pode usar; ela não transpila recursos novos para versões antigas.
Qual a diferença entre minify e uglify?
Significam a mesma coisa. O UglifyJS era a ferramenta clássica; o Terser é o fork mantido dele, com suporte completo a ES2015+.

Ferramentas relacionadas