Skip to content

Conversation

williamjallen
Copy link
Collaborator

We currently build all of our full-page components and all of their dependencies into a single bundle. This means that our bundle size will continue to grow and download sizes will increase as we convert more pages to Vue. In the interest of maintaining a reasonable bundle size, this PR uses Vue's async components to achieve bundle splitting, loading only the chunks needed for a given page.

Copy link
Member

@josephsnyder josephsnyder left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@josephsnyder josephsnyder added this pull request to the merge queue May 6, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to a conflict with the base branch May 6, 2025
@williamjallen williamjallen force-pushed the vue-async-components branch from 18ef362 to 9ebbd1b Compare May 6, 2025 14:04
@williamjallen williamjallen enabled auto-merge May 6, 2025 14:07
@williamjallen williamjallen added this pull request to the merge queue May 6, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks May 6, 2025
@williamjallen williamjallen added this pull request to the merge queue May 6, 2025
Merged via the queue into Kitware:master with commit 104d663 May 6, 2025
7 checks passed
@williamjallen williamjallen deleted the vue-async-components branch May 6, 2025 17:08
github-merge-queue bot pushed a commit that referenced this pull request May 7, 2025
Font Awesome is currently responsible for the majority of our overall
Vue bundle size because it includes all of the available icons in the
main bundle. This PR removes the global icon library in favor of
per-component includes. The end result is that the main bundle size is
reduced by 75%+. As part of this work, I fixed an issue with the webpack
runtime configuration which was missed in #2864.
github-merge-queue bot pushed a commit that referenced this pull request Jun 4, 2025
#2864 introduced Webpack bundle
splitting. While the chunk names are based on a rolling integer number
in production, they are deterministically computed based on the filename
in development. Browser caching causes this to be annoying in
development. This PR changes the naming scheme to instead depend on the
content hash, eliminating the issue.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants