Minificador e Formatador de JavaScript - Terser no navegador
Minificador e formatador de JavaScript
Encurtar nomes locais é o que mais economiza bytes, mas quebra código que busca nomes como texto: eval, new Function ou um framework que lê nomes de parâmetros. Desligue se você depende disso.
O que esta ferramenta faz
Minificar JavaScript não é tirar espaços. Feito com localizar-e-substituir, saem arquivos que parecem certos e se comportam diferente, e a diferença aparece em produção. Esta página roda o Terser - o mesmo motor por trás da etapa de build da maioria dos projetos - dentro do seu navegador.
Como usar
- 1 Cole o JavaScript na caixa.
- 2 Escolha um alvo e decida se quer encurtar os nomes.
- 3 Clique em Minificar - ou em Formatar para reabrir um arquivo minificado.
Por que um parser e não localizar-e-substituir
O JavaScript coloca os pontos e vírgulas que você omitiu. Tire a quebra de linha entre «return» e o valor e a função passa a devolver undefined: o arquivo continua válido, só faz outra coisa. O mesmo caractere é divisão num lugar e expressão regular em outro. Distinguir isso exige a gramática, não um padrão; por isso esta página usa um parser de verdade.
O que realmente encolhe
Espaços e comentários são a menor parte. A economia real vem de renomear variáveis locais para uma letra, juntar declarações separadas numa só, resolver constantes e jogar fora código que nunca roda. Tudo isso são operações na árvore: o minificador precisa saber que dois nomes são a mesma ligação e que nada entre eles a lê.
Onde encurtar nomes morde
Um minificador consegue renomear o que enxerga. Não enxerga um nome escrito como texto: eval("count + 1"), new Function("a", "return a"), ou um framework que lê os nomes dos parâmetros para decidir o que injetar. Esses continuam procurando o nome antigo e não acham nada. É uma propriedade da linguagem, não um defeito da ferramenta; por isso a chave é sua.
Formatar não devolve o arquivo original
Formatar devolve a indentação e as quebras de linha, então um arquivo minificado volta a ser legível. Não devolve o que foi jogado fora: os comentários se foram e, se os nomes foram encurtados, continuam curtos - nenhuma ferramenta adivinha que «e» era «errorMessage». Para depurar um arquivo de produção, só um source map traz o original de volta.