Skip to content

skilldrop·docs·How-to

Use bundle-size-review

Find what makes a JavaScript bundle heavy and what can safely come out, from the bundler's stats file (webpack stats.json, an esbuild metafile, or the…

Find what makes a JavaScript bundle heavy and what can safely come out, from the bundler's stats file (webpack stats.json, an esbuild metafile, or the rollup-plugin-visualizer raw-data JSON that Vite builds use) read together with the repo around it (package.json, .browserslistrc, the lockfile, the bundler config and the source files that import the heavy modules). Gives each entry's first-load JavaScript in the exact bytes the stats record, kept apart from lazy chunks; finds whole-library imports, CommonJS packages that can't be tree-shaken, packages bundled twice and polyfills the browser targets don't need; names the import chain that pulls each module in before suggesting a removal; and, given before and after stats, says what grew, why, whether it lands in the first load and which per-entry budget would have caught it.

Reach for it when the user says "why is our bundle so big", "what can we cut from the bundle", "review this stats.json", "why is lodash or moment in our bundle", "the bundle grew in this PR", or "set a bundle size budget".

Install it

npx skilldrop-cli install bundle-size-review                 # Claude Code, your user folder
npx skilldrop-cli install bundle-size-review --project       # Claude Code, this repo
npx skilldrop-cli install bundle-size-review --ide cursor    # or kiro, codex, antigravity, copilot

It is part of the Frontend pack: --pack frontend installs it with its neighbours.

It ships scripts, so it needs Python 3 (standard library only, nothing to install). What they may touch is declared in its manifest.

Ask for it

Say it the way you would to a colleague. Requests like these route to it:

Requests like these belong to a different skill, so it shouldn't answer them:

If another skill answers instead, ask for this one by name: "use bundle-size-review".

Check what you get

A good result:

See a worked example

Use something else when

Next

Edit this page on GitHub · View source