Tiny Online Tools logoTiny Online ToolssearchBuscar ferramentas…grid_viewTodas as ferramentas
Iniciochevron_rightFerramentas de engenharia reversachevron_rightInspetor de Bundle WebpackInspetor de Bundle Webpack

Inspetor de Bundle Webpack

Detecta o bootstrap de runtime do webpack, o mapa de módulos e os metadados de chunk-push pela forma do AST, mostra o código real de cada módulo e avisa claramente quando um arquivo não é saída do webpack.

Origem do bundleColar códigoEnviar arquivo

Ferramentas semelhantes

Visualizador de Dependências de Bundle JS

Visualizador de Dependências de Bundle JS

Encontre os limites de módulos dentro de um bundle webpack, Rollup, esbuild ou Vite e veja qual módulo requer qual, por correspondência real de forma do AST, não por adivinhação de texto.

Analisador de Tamanho por Source Map

Analisador de Tamanho por Source Map

Atribua os bytes de um bundle aos arquivos e pastas de origem que os produziram, usando seu arquivo .map — veja o que realmente ocupa espaço.

Analisador de Código Morto JavaScript

Analisador de Código Morto JavaScript

Cole um pacote JS e encontre funções de nível superior sem nenhuma referência estática no arquivo — uma análise heurística de alcançabilidade, não uma certeza.

Inspetor de Binários Universal

Inspetor de Binários Universal

Envie qualquer arquivo e detecte automaticamente se é um binário ELF, PE/EXE, Mach-O ou WebAssembly, vendo sua estrutura principal rapidamente.

Formatador XML

Formatador XML

Formate documentos XML.

Adicionar marca d’água ao PDF

Adicionar marca d’água ao PDF

Adicione uma marca d’água de texto a um PDF.

Controle de velocidade de vídeo

Controle de velocidade de vídeo

Controle de velocidade de vídeo ajuda você a acelerar ou desacelerar um vídeo para revisão, aulas ou destaques diretamente no navegador. Use para ajustes rápidos e privados, publicações, aulas, demonstrações e edição diária.

apps

Mais ferramentas

Explore nossa colecao completa de ferramentas online gratuitas.

O que esta ferramenta verifica

Boa parte da web ainda entrega saída do webpack, e sua estrutura merece ser entendida em seus próprios termos — separada do grafo de dependências geral e agnóstico de bundler que o Visualizador de Dependências de Bundle JS desenha. Esta ferramenta procura especificamente pelas peças de um bundle webpack:

  • O bootstrap de runtime — a função no formato __webpack_require__ que todo build webpack traz, detectada pelo mecanismo exato que ela usa para invocar um módulo (modules[moduleId].call(module.exports, module, module.exports, require)), não pela busca do nome literal. Esse mecanismo sobrevive à renomeação completa de identificadores, então ainda funciona em um build onde todos os nomes foram minificados.
  • O mapa de módulos — seja na forma clássica de objeto ({0: fn, 1: fn, ...}) ou na forma de array ([fn, fn, ...]) que versões mais novas do webpack usam por padrão.
  • Metadados de chunk-push — em builds com divisão de código, a chamada (self.webpackChunkXxx = self.webpackChunkXxx || []).push([[chunkIds], {modules}, runtime]), extraindo o nome e os ids do chunk.
  • Auxiliares de runtime — quais entre .m (mapa de módulos), .c (cache de módulos), .d (define getter), .o (hasOwnProperty), .n (getter de export padrão), .s (id do módulo de entrada) e .p (caminho público) estão presentes.

Selecione qualquer módulo na lista para ver seu código real em um painel com realce de sintaxe — sem execução, apenas o texto que o próprio webpack envolveu em torno daquele módulo.

Quando não é webpack

Se nem o runtime nem um mapa de módulos forem encontrados, a ferramenta diz "isto não parece saída do webpack" em vez de forçar um palpite, e adiciona uma dica simples e honesta quando disponível — um comentário //# sourceMappingURL=, ou o fato de o arquivo ser analisado como módulo ES (comum em saídas do Rollup, esbuild e Vite).

Limitação conhecida

Um bundle que passou pelo webpack e depois por uma segunda passagem de minificação mais agressiva que também renomeia os próprios nomes de propriedade do runtime pode escapar da verificação de forma .call() e ser reportado como não-webpack. É uma escolha deliberada: um falso negativo raro é melhor do que inventar um mapa de módulos que não existe de fato.

Privacidade

Tudo roda no seu navegador usando um analisador JavaScript real (acorn). O arquivo que você cola ou envia nunca é enviado a lugar nenhum.