Desminificar JavaScript online
Cole um ficheiro .js minificado, um pacote webpack ou um excerto numa só linha e obtenha JavaScript com indentação adequada no painel direito. A formatação é feita pelo Prettier, no seu navegador, sem enviar o código para lado nenhum.
Porque é que o JavaScript se torna ilegível
Muitos processos de compilação para produção minificam o JavaScript antes de o distribuir. Os minificadores removem espaços e comentários desnecessários e podem abreviar nomes ou reescrever expressões. Uma etapa separada de empacotamento pode juntar módulos em ficheiros maiores, pelo que o script distribuído pode diferir bastante do código-fonte do projeto. Estas etapas procuram preservar o comportamento ao preparar o código para distribuição, mas dificultam a análise manual. Um projeto com muitos módulos legíveis pode chegar como um pequeno conjunto de pacotes densos. A formatação revela a estrutura que permanece nesses pacotes sem reverter as transformações da compilação.
O que a formatação realmente permite recuperar
Formatar um pacote acrescenta quebras de linha, espaços e indentação que facilitam a análise do programa restante. As funções aninhadas e os ramos condicionais tornam-se visíveis, e é mais fácil localizar cadeias de caracteres ou nomes de pontos de acesso. Os novos números de linha pertencem à cópia formatada: um rastreio da pilha proveniente do ficheiro minificado continua a referir-se ao ficheiro original. O LFUnminify não converte essas posições nem as associa a mapas de código-fonte. Utilize a vista formatada para compreender a lógica envolvente e o depurador do navegador para investigar as posições exatas durante a execução. Um bom ponto de partida é uma cadeia de caracteres distintiva de uma mensagem de erro ou de um pedido de rede. Encontre-a na cópia formatada e leia as condições à sua volta, em vez de presumir que a função mais próxima causou o problema. Se um pacote incluir funções auxiliares geradas ou código envolvente de execução, estes continuam presentes após a formatação. Comparar esse contexto com o código-fonte original, quando disponível, permite obter uma explicação mais fiável do que a indentação por si só.
Suporte para sintaxe moderna
O formatador analisa JavaScript atual, não apenas um subconjunto de há dez anos. Funções de seta, classes, async e await, geradores, encadeamento opcional, coalescência nula, literais de modelo, desestruturação, sintaxe de expansão, importações dinâmicas e módulos ES são suportados pelo formatador JavaScript. JSX também é suportado, o que é relevante ao analisar um componente React compilado sem eliminar essa sintaxe. Como o trabalho é feito pelo Prettier, o resultado segue convenções consistentes, embora as definições desta ferramenta possam diferir da configuração do seu editor.
Quais são os limites
A formatação não desfaz as transformações realizadas durante a compilação. Uma variável chamada n continua a chamar-se n, mesmo que o seu nome original fosse remainingRetries. Os módulos empacotados permanecem no pacote fornecido, e os comentários eliminados não podem ser deduzidos de forma fiável. O repositório original ou um mapa de código-fonte podem ajudar a recuperar contexto fora desta ferramenta. Código deliberadamente ofuscado continua ofuscado após a formatação: cadeias codificadas, ramificações artificiais e nomes enganadores podem continuar a ocultar o seu significado. Utilize o resultado como auxílio à análise e teste quaisquer alterações no projeto real.
Perguntas frequentes
É possível desminificar um pacote webpack ou Vite?
Sim, pode formatar pacotes JavaScript suportados colando o conteúdo ou abrindo um ficheiro local. O resultado mantém o código empacotado, sem reconstruir módulos de origem separados. Pacotes grandes podem tornar o navegador lento ou bloqueá-lo, por isso analise uma secção completa mais pequena sempre que possível.
A ferramenta desofusca JavaScript?
Pode formatar sintaxe JavaScript suportada num ficheiro ofuscado, mas não desfaz a ofuscação. As cadeias codificadas, o fluxo de controlo artificial e os nomes deliberadamente enganadores permanecem. A indentação pode ajudar a investigar essas estruturas, mas uma apresentação legível, por si só, não determina o que o script faz nem se é de confiança.
A formatação pode danificar o meu código?
O formatador procura preservar o comportamento do JavaScript ao aplicar um estilo consistente. Pode alterar a pontuação, as aspas e a apresentação, pelo que o resultado não é uma cópia exata, byte a byte. Guarde o original, reveja o resultado e execute os testes do projeto antes de utilizar um pacote editado ou formatado em produção.
