Initializing, please wait a moment

Unminify JS: Restaurar a Legibilidade de JavaScript Minificado

JavaScript minificado - o tipo entregue por todo bundler moderno sob nomes como bundle.min.js ou main.[hash].js - e uma unica linha densa com nomes de variavel de uma letra, sem espacos em branco e sem quebras de linha. Este guia percorre a viagem de tres minutos dessa forma compacta de volta para codigo indentado e quebrado em linhas que seus olhos conseguem ler. A ferramenta companheira em https://freetoolonline.com/developer-tools/js-unminifier.html roda o unminify inteiramente dentro do navegador, entao o codigo-fonte nunca sai da aba.

Ultima revisao: 2026-05-20

PropriedadeValor
FormatoFerramenta online, sem instalar
VelocidadeNo navegador; saida legivel em segundos
PrivacidadeCodigo-fonte fica no dispositivo; nada sobe
Renomear variavelNao realizado - nomes de uma letra continuam de uma letra
Ferramenta implementadorahttps://freetoolonline.com/developer-tools/js-unminifier.html

O que o unminify de fato faz (e o que nao consegue fazer)

Unminify reverte a metade barata da minificacao: ele re-insere espaco em branco, quebras de linha e indentacao consistente, entao um bundle de uma linha vira codigo formatado e legivel. Ele NAO reverte a metade cara - o renomeador. Variaveis chamadas a, b, t no bundle minificado continuam chamadas a, b, t depois do unminify, porque os nomes originais foram descartados em tempo de build e nenhum source map foi preservado. Se um source map (arquivo .map ou comentario inline //# sourceMappingURL=) estiver disponivel, esse arquivo aponta para os simbolos originais e e o artefato certo a carregar - nao uma passada de unminify. O enquadramento para o leitor: unminify e a ferramenta certa para "tenho um bundle de terceiros e quero ler o que ele faz"; um source map e a ferramenta certa para "tenho meu proprio build e quero depurar simbolos originais".

Passo a passo de tres minutos

  1. Copie o bundle minificado. Abra o arquivo .min.js no seu editor ou na aba network do navegador (Response body), selecione tudo, copie.
  2. 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.
  3. Clique em Unminify. O painel da direita mostra a saida indentada. Copie o resultado de volta para seu editor ou salve como arquivo .js local 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

Espaco em branco, quebras de linha e indentacao sao restaurados deterministicamente a partir da AST. Comentarios nao sao restaurados - o minificador os remove em tempo de build e nenhuma informacao fica no bundle para reconstrui-los. Estrutura de modulo (chamadas CommonJS require, declaracoes ESM import) e preservada como aparece na forma empacotada, que frequentemente e um wrapper gerado em vez do limite original do modulo. Otimizacoes em nivel de fonte como constant folding (5*60*60*1000 colapsado para 18000000) nao sao revertidas - unminify nao entende semantica, apenas sintaxe. Se um numero parece criptico na saida desminificada, procure-o no repositorio original ou adivinhe a unidade (milissegundos, bytes, indices).

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.

Why trust these tools

  • Ten-plus years of web tooling. The freetoolonline editorial team has shipped browser-based utilities since 2015. The goal has never changed: get you to a working output fast, without an install.
  • Truly in-browser - no upload. Every file-processing tool on this site runs in your browser through modern Web APIs (File, FileReader, Canvas, Web Audio, WebGL, Web Workers). Your photo, PDF, audio, or text never leaves your device.
  • No tracking during tool use. Analytics ends at the page view. The actual input you paste, drop, or capture is never sent to any server and never written to any log.
  • Open-source core components. The processing engines underneath (libheif, libde265, pdf-lib, terser, clean-css, ffmpeg.wasm, and others) are public and audit-able. We link to each one in its tool page's footer.
  • Free, with or without ads. All tools are fully functional without sign-up. The Disable Ads button in the header is always available if you need a distraction-free run.