Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build each entry independently when testing Vite #4981

Merged
merged 1 commit into from
May 16, 2024

Conversation

romaricpascal
Copy link
Member

@romaricpascal romaricpascal commented May 13, 2024

Builds initAll.mjs and single-component.mjs independently during Vite integration tests, to work around Vite cleverly optimising a build with multiple entries by splitting shared code in a separate file. After investigation, it seems we can only make separate builds to circumvent that cleverness.

Simplest option looked to allow to pass the name of the file through environment variable, so we can run the build command multiple times targeting a separate entry. As we want to have the same build folder structure as for Webpack and Rollup, both builds will need to output to the same folder, for which we need to disable Vite automatically cleaning up its build folder.

Closes #4978.

Copy link

github-actions bot commented May 13, 2024

📋 Stats

File sizes

File Size
dist/govuk-frontend-development.min.css 113.32 KiB
dist/govuk-frontend-development.min.js 42.34 KiB
packages/govuk-frontend/dist/govuk/all.bundle.js 88.16 KiB
packages/govuk-frontend/dist/govuk/all.bundle.mjs 82.83 KiB
packages/govuk-frontend/dist/govuk/all.mjs 981 B
packages/govuk-frontend/dist/govuk/govuk-frontend-component.mjs 359 B
packages/govuk-frontend/dist/govuk/govuk-frontend.min.css 113.3 KiB
packages/govuk-frontend/dist/govuk/govuk-frontend.min.js 42.33 KiB
packages/govuk-frontend/dist/govuk/i18n.mjs 5.55 KiB
packages/govuk-frontend/dist/govuk/init.mjs 4.86 KiB

Modules

File Size (bundled) Size (minified)
all.mjs 78.45 KiB 40.31 KiB
accordion.mjs 22.71 KiB 12.85 KiB
button.mjs 5.98 KiB 2.69 KiB
character-count.mjs 22.4 KiB 9.92 KiB
checkboxes.mjs 5.83 KiB 2.83 KiB
error-summary.mjs 7.89 KiB 3.46 KiB
exit-this-page.mjs 17.1 KiB 9.26 KiB
header.mjs 4.46 KiB 2.6 KiB
notification-banner.mjs 6.26 KiB 2.62 KiB
password-input.mjs 15.15 KiB 7.25 KiB
radios.mjs 4.83 KiB 2.38 KiB
skip-link.mjs 4.39 KiB 2.18 KiB
tabs.mjs 10.13 KiB 6.11 KiB

View stats and visualisations on the review app


Action run for a6628e8

@govuk-design-system-ci govuk-design-system-ci temporarily deployed to govuk-frontend-pr-4981 May 13, 2024 15:01 Inactive
// as Vite would split shared code in a separate chunk if trying
// to build an array of entries in `build.rollupOptions.input`
// or `build.lib.entry`
const entryName = process.env.ENTRY_NAME ?? 'single-component'
Copy link
Member Author

Choose a reason for hiding this comment

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

note Set a default here to avoid things breaking badly when runing Vite outside of npm run vite -w @govuk-frontend/bundler-integrations

@romaricpascal romaricpascal marked this pull request as ready for review May 13, 2024 15:07
@romaricpascal romaricpascal requested a review from a team as a code owner May 13, 2024 15:07
Copy link
Member

@36degrees 36degrees left a comment

Choose a reason for hiding this comment

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

Makes sense to me 👍🏻

@romaricpascal romaricpascal merged commit f5a4246 into main May 16, 2024
48 checks passed
@romaricpascal romaricpascal deleted the fix-vite-code-splitting branch May 16, 2024 08:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Review Vite integration tests
3 participants