Minificar CSS, JS ou HTML
Tire comentários, indentação e espaços inúteis de folhas de estilo, scripts e páginas, com segurança e sem renomear nada no seu código.
Solte seus arquivos aqui
.css, .js, .mjs, .html, .htm, .txt · até 20 MB
Como Minificar
- 1
Solte seus arquivos de código
Adicione até vinte folhas de estilo, scripts ou páginas, com até 20 MB cada. Todos são lidos e processados nesta aba do navegador.
- 2
Confirme a linguagem
Primeiro decide a extensão do arquivo, depois o próprio conteúdo. Se nenhum dos dois resolver, escolha você mesmo entre CSS, JavaScript e HTML antes de continuar.
- 3
Baixe os arquivos minificados
Cada resultado volta ao lado do original como um arquivo .min, e um lote chega em um único ZIP.
Leitura por tokens: strings continuam sendo strings
Cada arquivo é decomposto em tokens reais antes que um único caractere seja removido. É isso que impede que um marcador de comentário dentro de uma string corte a linha, que uma barra dupla dentro de uma URL engula uma regra e que uma abertura de comentário <!-- dentro de um script encerre o bloco antes da hora. A remoção ingênua de espaços falha exatamente nesses casos, e falha em silêncio.
As quebras de linha com significado ficam
Em JavaScript, uma quebra de linha às vezes vale como ponto e vírgula. Um return seguido de quebra de linha retorna undefined, enquanto um return seguido de espaço retorna o valor; trocar essa quebra mudaria o que o código faz. As quebras de linha de que a linguagem depende ficam onde estão. No HTML, o conteúdo de pre e textarea é copiado sem alteração, e os comentários condicionais são mantidos: eles são marcação, não anotações.
O que a ferramenta não faz, de propósito
Os nomes de variáveis não são encurtados, e nenhum source map é gerado. Renomear variáveis locais exige uma análise completa de escopo sobre um analisador completo da linguagem, e um pequeno erro nisso quebra, sem aviso, um código que funcionava. A economia aqui é menor do que a de um conjunto completo de ferramentas de build, e tudo o que a produz é reversível.
Seu código nunca é enviado
A leitura, a análise e a reescrita acontecem nesta aba do navegador, sem servidor, sem fila e sem cópia guardada depois que você a fecha. Isso importa para arquivos de código-fonte, que muitas vezes trazem endpoints internos, comentários sobre trabalho ainda não lançado e chaves que alguém esqueceu em uma configuração.
Perguntas frequentes
É seguro minificar um código que não fui eu que escrevi?
As transformações aqui só removem coisas que a linguagem ignora: comentários, indentação e espaços redundantes. Nada é reescrito, reordenado ou renomeado, então a saída se comporta igual à entrada. Guarde o original mesmo assim, porque um arquivo minificado é feito para ser gerado, e não editado.
Por que os nomes das minhas variáveis continuam iguais?
Encurtar nomes exige análise de escopo sobre um analisador completo da linguagem, e um erro nisso muda em silêncio o comportamento do código de alguém em produção. Isso não está implementado, e nenhuma opção finge que está. O resultado é uma redução segura, porém menor do que a de um bundler completo, e vale saber disso antes de comparar a quantidade de bytes.
Isso é o mesmo que ofuscar o código?
Não. A minificação remove bytes de que o analisador não precisa, e a lógica continua legível depois que você indenta o código de novo. A ofuscação torna o código difícil de entender de propósito, com identificadores renomeados, strings codificadas e reescrita do fluxo de controle. Nada aqui tenta esconder coisa alguma.
A ferramenta gera source map?
Nenhum source map é gerado. Ligar as posições minificadas às linhas originais exige acompanhar cada token durante a reescrita, e isso é trabalho para uma ferramenta de build. Para depurar, guarde o arquivo sem minificar e publique o minificado.
Dá para minificar vários arquivos de uma vez?
Até vinte por lote, e a linguagem é identificada arquivo por arquivo, então uma folha de estilo, um script e uma página podem ser processados juntos. Um arquivo com erro de sintaxe é apontado pelo nome e pulado, sem cancelar os outros.
O que acontece se um arquivo tiver erro de sintaxe?
Você recebe a linha e a coluna em vez de um resultado. Um bloco CSS não fechado ou uma declaração sem valor interrompe aquele arquivo de propósito: gerar uma folha de estilo truncada, que parece normal até chegar à produção, é pior do que uma mensagem de erro.
Por que meu arquivo quase não diminuiu?
Provavelmente ele já estava minificado. Quando a saída tem quase o mesmo tamanho da entrada, não sobra nada para remover. A ferramenta diz isso com clareza, mas devolve o arquivo mesmo assim, em vez de bloquear você.
O CSS e o JavaScript embutidos no HTML também são minificados?
Sim. Os blocos style e script de uma página são minificados com o mesmo mecanismo usado nos arquivos avulsos, e os espaços entre as tags viram um só espaço. Um script inline com erro não derruba o resto da página: esse bloco fica como estava.