ensureEngineReady() after first paintimport(), which makes the bundler split each
into its own lazy chunk.
| Chunk | Role | Raw | Gzip | Brotli |
|---|---|---|---|---|
index-DNkHkLVW.js | initial | 66.0 KB | 20.8 KB | 18.1 KB |
metadata.bin-B2ESXIOK.js | engine, lazy | 48.7 KB | 36.7 KB | 36.6 KB |
walk.bin-Bm6c2KHv.js | engine, lazy | 42.5 KB | 31.9 KB | 31.8 KB |
verdict.bin-DjsPGVlp.js | engine, lazy | 34.7 KB | 26.0 KB | 26.0 KB |
scope.bin-BC8I_07E.js | engine, lazy | 33.7 KB | 25.4 KB | 25.4 KB |
| Total on disk | 225.6 KB | 140.8 KB | 137.9 KB |
bundlephobia and the Import Cost editor extension estimate size by inlining every import() back
into the entry, since neither models code-splitting. For a library that ships its data through lazy chunks, that
collapses the initial bundle and the on-demand engine into one figure (140.8 KB).
A production bundler keeps the split. The engine layers download in parallel, off the critical path, when
ensureEngineReady() runs. The entry chunk is what reaches a user on first paint, at
20.8 KB gzipped.
git clone https://github.com/martsinlabs/telixon
cd telixon && pnpm install
pnpm --filter @telixon/core build
pnpm --filter @telixon/example-core-bundle-size build
import(), exactly as it does in a consumer's build.