Unminify JS: Restaurar a Legibilidade de JavaScript Minificado
JavaScript minificado colapsa um bundle em uma linha densa com nomes de variavel de uma letra. Cole no desminificador JS online e a ferramenta re-insere espaco em branco, quebras de linha e indentacao em segundos - sem upload, sem instalacao, nada enviado para um servidor.
FreetoolOnline editorial team| Propriedade | Valor |
|---|---|
| Formato | Ferramenta online, sem instalar |
| Velocidade | No navegador; saida legivel em segundos |
| Privacidade | Codigo-fonte fica no dispositivo; nada sobe |
| Renomear variavel | Nao realizado - nomes de uma letra continuam de uma letra |
| Ferramenta implementadora | https://freetoolonline.com/developer-tools/js-unminifier.html |
O que o unminify de fato faz (e o que nao consegue fazer)
O que o unminify de fato faz e reinserir espacos, quebras e indentacao no JavaScript minificado para ler um bundle de uma linha - nao recupera nomes de identificadores encurtados no minify.
Passo a passo de tres minutos
Passo a passo de tres minutos: cole JS minificado no JS Unminifier, rode o beautify e copie a saida indentada - no navegador, sem upload do codigo para um servidor de conversao.
- Copie o bundle minificado. Abra o arquivo
.min.jsno seu editor ou na aba network do navegador (Response body), selecione tudo, copie. - Cole no editor. Abra https://freetoolonline.com/developer-tools/js-unminifier.html e cole no painel de entrada. Bundles longos - centenas de KB ou mais - funcionam, mas espere a passada de formatacao levar um ou dois segundos enquanto o parser caminha pela AST.
- Clique em Unminify. O painel da direita mostra a saida indentada. Copie o resultado de volta para seu editor ou salve como arquivo
.jslocal para leitura estilo grep.
Onde a saida desminificada ajuda e onde nao ajuda
Ler codigo de terceiros desminificado e util em tres situacoes concretas. Primeiro, triagem de vulnerabilidade - quando um CVE nomeia uma funcao dentro de um bundle de fornecedor, o unminify deixa voce localizar os pontos de chamada e ler o fluxo ao redor sem precisar montar o repo original. Segundo, confirmacao de comportamento - quando o comportamento de uma biblioteca muda entre versoes, comparar as versoes desminificadas mostra a diferenca muito mais rapido do que ler a forma densa de uma linha. Terceiro, verificacao de saida de build - quando seu proprio pipeline gera um bundle que misteriosamente carrega um polyfill duas vezes, a forma desminificada mostra os blocos IIFE duplicados num relance. Unminify nao ajudara quando o objetivo for os nomes semanticos originais; para isso, entregue o source map junto com o bundle e carregue-o no seu debugger.
O que e preservado, o que e perdido
O que e preservado, o que e perdido: espacos e indentacao voltam da arvore de parse; comentarios e nomes curtos como a/b/fn1 nao voltam.
Indo no sentido contrario?
Se voce chegou aqui buscando encolher JS para producao em vez de expandi-lo, a ferramenta companheira em https://freetoolonline.com/developer-tools/js-minifier.html faz a direcao direta (remocao de espaco em branco, encurtamento de identificador) e o guia de comparacao CSS Minifier vs Uglifier vs Tree-Shaking cobre como as tres transformacoes se empilham em um pipeline de build tipico. Para equivalentes do lado CSS, veja CSS Unminifier vs Prettier: Quando Usar Cada - a decisao do lado JS e similar: unminify ao ler saida de terceiros, source map ao depurar a sua propria.
Perguntas frequentes
O unminify recupera os nomes originais das variaveis?
Nao. Minificadores substituem identificadores por nomes sinteticos curtos em tempo de build e descartam os originais; a saida desminificada mantem os nomes sinteticos. Carregue o source map correspondente no debugger do seu navegador para ver os simbolos originais.
O codigo-fonte e enviado para algum lugar?
Nao. A passada de unminify roda inteiramente no seu navegador; o texto minificado nunca e enviado a um servidor. Feche a aba e a entrada se vai.
O unminify vai quebrar o JavaScript?
Nao. A transformacao e puramente cosmetica - espaco em branco, quebras de linha e indentacao. A AST nao muda, entao o codigo desminificado roda identicamente ao minificado original. Passe por um verificador de sintaxe se quiser uma confirmacao com cinto e suspensorio.
Qual e o limite de tamanho do arquivo?
Bundles de ate varios megabytes funcionam em navegadores modernos; o tempo da passada de formatacao cresce aproximadamente linear com o comprimento da entrada. Bundles muito grandes (10 MB+) podem travar a aba; nesse caso, divida o bundle por limite de closure e desminifique cada chunk separadamente.
Qual a diferenca entre unminify e prettier?
Unminify restaura formatacao legivel para codigo que foi deliberadamente compactado. Prettier (ou um formatador similar) impoe um guia de estilo escolhido sobre codigo ja legivel. Para um bundle de terceiros minificado, unminify primeiro; se voce entao quiser uma largura de indent ou estilo de aspas especifico, rode o prettier sobre a saida.
Quando o seu objetivo e produzir JS menor em vez de le-lo, o guia how to minify css js for cloud run cold start cobre os passos do pipeline de build para remover CSS e JS antes da implantacao em container.
Como ficam os nomes de identificadores apos desminificar
Desminificar restaura espacos em branco e estrutura, nao recupera nomes de identificadores originais. Os nomes de variaveis locais encurtados (letras unicas como a, b, fn1) permanecem encurtados. Os nomes exportados geralmente sao preservados porque os minificadores ignoram o encurtamento de simbolos exportados para que a API do modulo permaneca intacta. Para reduzir JS, use o JS minifier - remove espacos em branco, comentarios e encurta variaveis locais preservando os nomes exportados.