Code splitting on dynamic import(); emit separate chunks loaded on demand.
Tree shaking: mark used exports, drop the rest. Then break it — drop a module with a
top-level side effect and watch the app fail. Implement the conservative fallback and the
sideEffects opt-in.
Source maps, composed across your transform chain. Off-by-one a mapping deliberately and try
to debug through it.
Over-split: 200 chunks. Measure time-to-interactive on a throttled connection against a single
bundle. Record which won and why.