feat(@angular/build): Support splitting browser and server stats jsonfiles for easier consumption#32989
feat(@angular/build): Support splitting browser and server stats jsonfiles for easier consumption#32989tsteuwer-accesso wants to merge 1 commit intoangular:mainfrom
Conversation
|
@alan-agius4 , made the requested changes. Let me know if there's anything else. |
There was a problem hiding this comment.
Code Review
This pull request refactors the build process to generate separate and filtered stats files for browser and server outputs, replacing the single stats.json with more granular files like browser-stats.json and browser-initial-stats.json. The changes include updates to the application builder, esbuild bundling context, and Webpack configuration. Feedback highlights an opportunity to refactor the metafile filtering logic into a shared utility to reduce code duplication. Additionally, it was noted that the Webpack implementation currently produces a duplicate file for initial stats instead of a filtered one, which should be addressed to ensure feature parity with the esbuild implementation.
|
Thanks @alan-agius4 , looking into this. |
|
@alan-agius4 , I've changed this per your review. When I was creating the unit tests files, I can't import Metafile from esbuild. I kept getting an error stating that |
…asier consumption Adds separate `browser-stats.json` and `server-stats.json` output files alongside the existing `stats.json`, making it easier for consumers to work with browser-only or server-only bundle metadata. Includes unit tests for the new filtering utility and the updated stats-json builder option.
This feature supports splitting out the browser and server stats json files so it's easier to inspect the bundle in various analyzers. Today, everything gets dumped into a single file and it's nearly impossible to use without hours of
fix -> remove unused browser/server chunks -> analyzeand starting the loop all over again.This feature implements the feature request I made in #28185, along with another developers request to see a stats json file for just the initial page bundle. I've tested this out in my own repository and it's already helped an incredible amount.
Fixes #28185 #28671
PR Checklist
Please check to confirm your PR fulfills the following requirements:
PR Type
What kind of change does this PR introduce?
What is the current behavior?
When using
--stats-json, the CLI outputs a single stats.json file.Issue Number: #28185
What is the new behavior?
We now receive a
browser-stats.json,server-stats.json,browser-initial-stats.jsonandserver-initial-stats.jsonDoes this PR introduce a breaking change?
This is a breaking change for anyone relying on CI processes that inspect the old
stats.jsonfile as it will no longer be named that.Other information