Nouplo

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.

  1. Os números: antes 731, depois 427, economizado 42%. As 25 linhas viram 5 e os três comentários somem.
  2. 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.
  3. (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.
  4. 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 caracteres5 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

  1. Cole o JavaScript.
  2. Comentários e recuo somem; os nomes ficam exatamente como estavam.
  3. Confira a economia nos números acima da saída.
  4. 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