Qué encuentra
Los sitios modernos envían un único archivo JavaScript construido a partir de cientos de archivos fuente. Esta herramienta mira dentro de ese archivo e intenta recuperar los límites de módulo originales — agnóstico del empaquetador, usando la forma real del AST en lugar de coincidencias de texto, que se rompen en cuanto el código está minificado.
Lo intenta, en este orden:
- Forma function-map de webpack — una IIFE cuyo argumento es un objeto o array donde cada entrada es una función
(module, exports, require). Esto también detecta el clásico envoltoriowebpackUniversalModuleDefinition, sin importar lo profundo que esté la llamada real al mapa de módulos. - Forma chunk-push de webpack —
(self.webpackChunkXxx = self.webpackChunkXxx || []).push([ids, {modules}, runtime]), la forma que produce el code-splitting de webpack 5. - Comentarios de Rollup / esbuild / Vite — algunos builds sin minificar de esa familia conservan un comentario de línea
// ruta/al/archivo.jsantes del código de cada módulo. Cuando existen, se convierten en los límites de módulo. - Alternativa honesta — si no se encuentra nada de lo anterior (casi siempre porque el bundle es un build minificado de Rollup/esbuild/Vite sin marcadores de límite), la herramienta lo dice y lista las declaraciones de nivel superior del archivo en vez de inventar una lista de módulos.
Cómo leer el resultado
Cuando se encuentran módulos, cada uno lista qué require() hace por id de módulo literal y, igual de útil, qué otros módulos lo requieren a él — para trazar "si quito esto, qué se rompe" en cualquier dirección sin ejecutar nada.
Honestidad por diseño
Los requires dinámicos (require(variable)) y las llamadas import() no se pueden resolver estáticamente, así que simplemente se omiten de la lista de dependencias — esto puede subcontar dependencias, pero nunca fabricará una. Del mismo modo, un id de módulo referenciado por un require() que no está en el mapa detectado se sigue mostrando como destino de una arista aunque no tenga tarjeta propia; normalmente significa que vive en otro chunk que no se pegó aquí.
Privacidad
Todo funciona en tu navegador mediante un analizador JavaScript real (acorn). El bundle que pegas o subes nunca se envía a ningún sitio.
Tiny Online Tools







