Unminify JS: Restaurar a Legibilidade de JavaScript Minificado
JavaScript minificado colapsa um bundle em uma linha densa com nomes de variável de uma letra. Cole no desminificador JS online e a ferramenta re-insere espaço em branco, quebras de linha e indentação em segundos - sem upload, sem instalação, nada enviado para um servidor.
FreetoolOnline editorial team| Propriedade | Valor |
|---|---|
| Formato | Ferramenta online, sem instalar |
| Velocidade | No navegador; saída legível em segundos |
| Privacidade | Código-fonte fica no dispositivo; nada sobe |
| Renomear variável | Não 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 não consegue fazer)
O que o unminify de fato faz é reinserir espaços, quebras e indentação no JavaScript minificado para ler um bundle de uma linha - não recupera nomes de identificadores encurtados no minify.
Passo a passo de três minutos
Passo a passo de três minutos: cole JS minificado no JS Unminifier, rode o beautify e copie a saída indentada - no navegador, sem upload do código para um servidor de conversão.
- 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 formatação levar um ou dois segundos enquanto o parser caminha pela AST.
- Clique em Unminify. O painel da direita mostra a saída indentada. Copie o resultado de volta para seu editor ou salve como arquivo
.jslocal para leitura estilo grep.
Onde a saída desminificada ajuda e onde não ajuda
Ler código de terceiros desminificado é útil em três situações concretas. Primeiro, triagem de vulnerabilidade - quando um CVE nomeia uma função dentro de um bundle de fornecedor, o unminify deixa você localizar os pontos de chamada e ler o fluxo ao redor sem precisar montar o repo original. Segundo, confirmação de comportamento - quando o comportamento de uma biblioteca muda entre versões, comparar as versões desminificadas mostra a diferença muito mais rápido do que ler a forma densa de uma linha. Terceiro, verificação de saída de build - quando seu próprio pipeline gera um bundle que misteriosamente carrega um polyfill duas vezes, a forma desminificada mostra os blocos IIFE duplicados num relance. Unminify não ajudará quando o objetivo for os nomes semânticos originais; para isso, entregue o source map junto com o bundle e carregue-o no seu debugger.
O que é preservado, o que é perdido
O que é preservado, o que é perdido: espaços e indentação voltam da árvore de parse; comentários e nomes curtos como a/b/fn1 não voltam.
Indo no sentido contrário?
Se você chegou aqui buscando encolher JS para produção em vez de expandi-lo, a ferramenta companheira em https://freetoolonline.com/developer-tools/js-minifier.html faz a direção direta (remoção de espaço em branco, encurtamento de identificador) e o guia de comparação CSS Minifier vs Uglifier vs Tree-Shaking cobre como as três transformações se empilham em um pipeline de build típico. Para equivalentes do lado CSS, veja CSS Unminifier vs Prettier: Quando Usar Cada - a decisão do lado JS é similar: unminify ao ler saída de terceiros, source map ao depurar a sua própria.
Perguntas frequentes
O unminify recupera os nomes originais das variáveis?
Não. Minificadores substituem identificadores por nomes sintéticos curtos em tempo de build e descartam os originais; a saída desminificada mantém os nomes sintéticos. Carregue o source map correspondente no debugger do seu navegador para ver os símbolos originais.
O código-fonte é enviado para algum lugar?
Não. A passada de unminify roda inteiramente no seu navegador; o texto minificado nunca é enviado a um servidor. Feche a aba e a entrada se vai.
O unminify vai quebrar o JavaScript?
Não. A transformação é puramente cosmética - espaço em branco, quebras de linha e indentação. A AST não muda, então o código desminificado roda identicamente ao minificado original. Passe por um verificador de sintaxe se quiser uma confirmação com cinto e suspensório.
Qual é o limite de tamanho do arquivo?
Bundles de até vários megabytes funcionam em navegadores modernos; o tempo da passada de formatação 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 diferença entre unminify e prettier?
Unminify restaura formatação legível para código que foi deliberadamente compactado. Prettier (ou um formatador similar) impõe um guia de estilo escolhido sobre código já legível. Para um bundle de terceiros minificado, unminify primeiro; se você então quiser uma largura de indent ou estilo de aspas específico, rode o prettier sobre a saída.
Quando o seu objetivo é produzir JS menor em vez de lê-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 implantação em container.
Como ficam os nomes de identificadores após desminificar
Desminificar restaura espaços em branco e estrutura, não recupera nomes de identificadores originais. Os nomes de variáveis locais encurtados (letras únicas como a, b, fn1) permanecem encurtados. Os nomes exportados geralmente são preservados porque os minificadores ignoram o encurtamento de símbolos exportados para que a API do módulo permaneça intacta. Para reduzir JS, use o JS minifier - remove espaços em branco, comentários e encurta variáveis locais preservando os nomes exportados.