Minificador JavaScript
Menor — e comprovadamente o mesmo código.
Os exemplos substituem temporariamente os dados e as configurações. Você pode restaurar seu trabalho anterior.
0 caracteres
Resultado
Cole ou digite acima para ver o resultado aqui.
Seus arquivos ficam no seu dispositivo
Esta ferramenta roda inteiramente no seu navegador. O que você cola é processado no seu dispositivo e nunca é enviado a um servidor, então é seguro usar com tokens, chaves e textos não publicados.
Exemplo
Exemplo: validador de CPF de uma papelaria, de 731 para 427 caracteres
O cadastro da Papelaria Ipê Amarelo confere o CPF pelos dois dígitos verificadores: tira pontos e traço com /\D/g, recusa 11 dígitos iguais e calcula soma × 10 mod 11. São 25 linhas e 731 caracteres, com três comentários. Configuração: Minificar.
- Os números: antes 731, depois 427, economizado 42%. As 25 linhas viram 5 e os três comentários somem.
- A regex /^(\d)\1{10}$/ vem depois de ||, então é lida como expressão regular e passa inteira, com a referência \1. Fica um espaço entre || e a barra, porque dois operadores nunca são colados.
- (soma * 10) % 11 % 10 vira (soma*10)%11%10 e Number(cpf[i]) * (t + 1 - i) vira Number(cpf[i])*(t+1-i): só somem espaços.
- As duas versões respondem igual: 111.444.777-35 é válido, 111.444.777-36 não, e 111.111.111-11 é recusado mesmo passando na conta dos dígitos.
| Trecho | Antes | Depois |
|---|---|---|
| Limpeza | const cpf = texto.replace(/\D/g, ''); | const cpf=texto.replace(/\D/g,''); |
| Repetidos | if (cpf.length !== 11 || /^(\d)\1{10}$/.test(cpf)) { | if(cpf.length!==11|| /^(\d)\1{10}$/.test(cpf)){ |
| Dígito | const digito = (soma * 10) % 11 % 10; | const digito=(soma*10)%11%10; |
| Arquivo | 25 linhas, 731 caracteres | 5 linhas, 427 caracteres (42% economizado) |
O nome cpfValido, o seletor #cpf e a classe 'erro' continuam iguais; basta trocar o arquivo no site pela versão de 427 caracteres.
Como funciona
- Cole o JavaScript.
- Comentários e recuo somem; os nomes ficam exatamente como estavam.
- Confira a economia nos números acima da saída.
- Copie ou baixe o resultado.
Perguntas frequentes
- Por que ele não encurta os nomes das minhas variáveis?
- Porque renomear exige um analisador de verdade e um estudo de escopos, e errar sutilmente nisso publica um arquivo que funciona até parar de funcionar. Para algo que você está prestes a publicar, uma ferramenta que promete menos e acerta sempre é a melhor troca.
- Ele distingue uma expressão regular de uma divisão?
- Distingue — e essa é a única parte genuinamente difícil de ler JavaScript sem analisar. Uma barra depois de um valor ou de um fecha-parênteses é divisão; depois de um operador, de um abre-parênteses, de uma vírgula, de uma palavra como return ou typeof, ou no começo, ela abre uma expressão regular. Assim x = /ab+c/g e return /a b/.test(s) ficam inteiros, espaços incluídos, e total/count continua divisão.
- Ele quebra a inserção automática de ponto e vírgula?
- Não. Uma quebra de linha pode fazer as vezes de ponto e vírgula, então linhas só são juntadas quando a anterior termina num operador, numa vírgula ou num abre-parênteses, ou esta começa com um fecha-parênteses, um ponto ou uma vírgula. Uma linha que termina em ++ ou -- ou numa expressão regular mantém a quebra, então código escrito sem ponto e vírgula também continua funcionando.
- Meu cabeçalho de licença é removido?
- Não. Um bloco que começa com /*! e qualquer comentário com @license ou @preserve ficam exatamente como foram escritos, quebras de linha incluídas, numa linha própria. Os demais // e /* */ vão embora, inclusive blocos JSDoc /**.
- A economia é contada em bytes?
- Em caracteres: antes e depois são o tamanho do texto como o JavaScript conta. Para código só com letras sem acento, é igual aos bytes; um ç ou um ã ocupa dois bytes em UTF-8, então um arquivo com comentários em português economiza um pouco mais em bytes do que a porcentagem mostra.
- Alguma coisa é enviada para um servidor?
- Não. Roda no navegador, então o que você colar fica no seu computador.
Ferramentas relacionadas
◒ Formatador CSS Uma declaração por linha — ou o arquivo inteiro em uma. ‹› Formatador HTML Recuado para ler, ou espremido para publicar. {} Formatador JSON Cole JSON e receba de volta recuado, minificado ou validado. Seus dados ficam nesta página. ∿ Base64 De texto para Base64 e de volta, com UTF-8 correto e alfabeto seguro para URL opcional.