Browser totals
JS and CSS chunks only. Prerender does not change these sizes. Feature lazy modules did not regress.
metric | A19 size-fix | A20 current | delta
initial raw 6.80 MB 12.43 MB +5.63 MB
initial transfer 1.14 MB 2.00 MB +0.86 MB
lazy raw 16.82 MB 13.43 MB -3.39 MB
lazy transfer 2.87 MB 2.19 MB -0.68 MB
all raw 23.63 MB 25.86 MB +2.23 MB
all transfer 4.02 MB 4.19 MB +0.17 MB
initial files 27 21 fewer files, more in initial
lazy files 117 98 moved into initial
Named files
main grew. styles shrank a little. Lazy feature modules stayed put.
name | A19 | A20 | delta
main 184.43 kB / 44.09 kB 293.22 kB / 55.80 kB +108.80 kB raw
styles 1.85 MB / 148.44 kB 1.81 MB / 143.16 kB -35 kB raw
polyfills 35.10 kB 35.10 kB 0
scripts 3.88 kB 3.88 kB 0
heic-to 2.52 MB 2.52 MB 0
monetize-module 1.38 MB 1.38 MB ~0
insights-module 709.26 kB 708.92 kB ~0
messages-module 307.55 kB 306.79 kB ~0
whitelabel-cover-page-module 316.27 kB 313.79 kB -2.5 kB
amazon-ivs-web-broadcast 619.21 kB 619.22 kB 0
Largest unnamed initial JS
These kitchen-sink vendor chunks hold PrimeNG, Firebase, aws-sdk, video.js, ng-select, and Stripe. They are the bulk of the first-load jump. Server initial follows the same split: 5.92 MB to 11.64 MB.
rank | A19 size-fix | A20 current
1 2.51 MB 3.92 MB
2 1.08 MB 3.48 MB
3 587.50 kB 1.91 MB
sum 4.18 MB 9.31 MB+5.13 MB
Why initial grew
- Lara is eager on Angular 20.
AppModuledoesimport * as LaraTheme from '@primeuix/themes/lara'and passes the preset toprovidePrimeNG.Resolve_build_size_19only setsdarkModeSelectorup front and loads Lara later throughPrimeNgLoaderService. - Phone and emoji are eager again. Current
SharedModulestill importsNgxIntlTelInputModuleandPickerModule. The size-fix branch deferred both. That shows up as initialchunk-SA2WMUN6.jsat 675.29 kB (intl-tel-input and libphonenumber), which is not in A19 initial. - The big unnamed initial JS chunks grew. Rank 1 to 3 went from 4.18 MB to 9.31 MB.
What did not get worse
Vendor CSS is slightly better here. ng-select, datepicker, and toastr CSS are inject: false on this branch and still sit in the main styles bundle on Resolve_build_size_19.
- The Angular 20 upgrade did not blow up total bytes. All-chunk transfer only moved from 4.02 MB to 4.19 MB.
- It undid the initial-versus-lazy split that
Resolve_build_size_19was built to create. - Full untruncated Angular 20 chunk list: prerender-all-qa chunk sizes.