O que esta ferramenta encontra
Sites modernos entregam um único arquivo JavaScript construído a partir de centenas de arquivos-fonte. Esta ferramenta olha dentro desse arquivo e tenta recuperar os limites de módulo originais — agnóstica quanto ao empacotador, usando a forma real do AST em vez de correspondência de texto, que se quebra assim que o código é minificado.
Ela tenta, nesta ordem:
- Forma function-map do webpack — uma IIFE cujo argumento é um objeto ou array em que cada entrada é uma função
(module, exports, require). Isso também detecta o clássico envoltóriowebpackUniversalModuleDefinition, não importa quão fundo esteja a chamada real do mapa de módulos. - Forma chunk-push do webpack —
(self.webpackChunkXxx = self.webpackChunkXxx || []).push([ids, {modules}, runtime]), a forma que o code-splitting do webpack 5 produz. - Comentários do Rollup / esbuild / Vite — alguns builds não minificados dessa família mantêm um comentário de linha
// caminho/para/arquivo.jsantes do código de cada módulo. Quando presentes, eles se tornam os limites de módulo. - Alternativa honesta — se nada disso for encontrado (quase sempre porque o bundle é um build minificado e com escopo achatado do Rollup/esbuild/Vite, sem marcadores de limite), a ferramenta avisa e lista as declarações de nível superior do arquivo em vez de inventar uma lista de módulos.
Como ler o resultado
Quando módulos são encontrados, cada um lista o que ele require() por id de módulo literal e, tão útil quanto, quais outros módulos o requerem — assim é possível rastrear "se eu remover isso, o que quebra" em qualquer direção sem executar nada.
Honestidade por design
Requires dinâmicos (require(variavel)) e chamadas import() não podem ser resolvidos estaticamente, então simplesmente são deixados de fora da lista de dependências — isso pode subcontar dependências, mas nunca fabricará uma. Da mesma forma, um id de módulo referenciado por um require() que não está no mapa detectado ainda é mostrado como alvo de uma aresta, mesmo sem ter cartão próprio; normalmente isso significa que ele vive em outro chunk que não foi colado aqui.
Privacidade
Tudo roda no seu navegador usando um analisador JavaScript real (acorn). O bundle que você cola ou envia nunca é enviado a lugar nenhum.
Tiny Online Tools







