What this tool checks
A lot of the web still ships webpack output, and its structure is worth understanding on its own terms — separate from the general, bundler-agnostic dependency graph that JS Bundle Dependency Visualizer draws. This tool looks specifically for the pieces of a webpack bundle:
- The runtime bootstrap — the
__webpack_require__-shaped function every webpack build ships, detected by the exact mechanism it uses to invoke a module (modules[moduleId].call(module.exports, module, module.exports, require)), not by searching for the literal name. That mechanism survives full identifier renaming, so it still matches a build where every name has been minified away. - The module map — either the classic object form (
{0: fn, 1: fn, ...}) or the array form ([fn, fn, ...]) that newer webpack versions default to. - Chunk-push metadata — for code-split builds, the
(self.webpackChunkXxx = self.webpackChunkXxx || []).push([[chunkIds], {modules}, runtime])call, with the chunk name and ids pulled out. - Runtime helpers — which of
.m(module map),.c(module cache),.d(define getter),.o(hasOwnProperty),.n(default export getter),.s(entry module id) and.p(public path) are present.
Select any module in the list to see its real source in a syntax-highlighted panel — no execution, just the text webpack itself wrapped around that module.
When it's not webpack
If neither the runtime nor a module map can be found, the tool says "this does not look like webpack output" rather than forcing a guess, and adds a cheap, honest hint when one is available — a //# sourceMappingURL= comment, or the file being parsed as an ES module (common for Rollup, esbuild and Vite output).
Known limitation
A bundle that went through webpack and then a second, more aggressive minification pass that also renames the runtime's own property names can slip past the .call() shape check and get reported as not-webpack. That is a deliberate trade-off: a rare false negative is better than inventing a module map that isn't really there.
Privacy
Everything runs in your browser through a real JavaScript parser (acorn). The file you paste or upload is never sent anywhere.
Tiny Online Tools







