Skip to content

fix: don't emit the unused bundle and stylesheet files when using bundleStrategy: 'inline'#16025

Merged
teemingc merged 4 commits into
sveltejs:mainfrom
Nic-Polumeyv:fix-inline-unused-files
Jun 12, 2026
Merged

fix: don't emit the unused bundle and stylesheet files when using bundleStrategy: 'inline'#16025
teemingc merged 4 commits into
sveltejs:mainfrom
Nic-Polumeyv:fix-inline-unused-files

Conversation

@Nic-Polumeyv

@Nic-Polumeyv Nic-Polumeyv commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

With bundleStrategy: 'inline', the bundle and stylesheet are written to _app/immutable even though their content is inlined into the page, so the build ships a full copy of the app that nothing ever loads. In the default template that roughly doubles the output size, and a service worker will happily precache the dead files too.

This deletes both files (and the bundle sourcemap if present) once their content has been captured for inlining, and filters anything that no longer exists out of the $service-worker build list. version.json stays, since the version checker can still fetch it at runtime. Of the unused files listed in the issue, env.js no longer reproduces on current main, so these two were the ones left. I went with deleting the files after the build rather than suppressing their emission inside it, since find_deps and the manifest plumbing still need the entries to exist, but open to a different route if preferred.

The options-3 app now has a service worker and a stylesheet, and its build-mode tests assert the inlined files are gone from _app/immutable (including sourcemaps), the service worker build list is clean, and version.json survives. The emitted-files assertions fail on main.

Found this one while working on #16024 and digging through how the client build decides what to emit.

Fixes #13700


Please don't delete this checklist! Before submitting the PR, please make sure you do the following:

  • It's really useful if your PR references an issue where it is discussed ahead of time. In many cases, features are absent for a reason. For large changes, please create an RFC: https://github.com/sveltejs/rfcs
  • This message body should clearly illustrate what problems it solves.
  • Ideally, include a test that fails without this PR but passes with it.

Tests

  • Run the tests with pnpm test and lint the project with pnpm lint and pnpm check

Changesets

  • If your PR makes a change that should be noted in one or more packages' changelogs, generate a changeset by running pnpm changeset and following the prompts. Changesets that add features should be minor and those that fix bugs should be patch. Please prefix changeset messages with feat:, fix:, or chore:.

Edits

  • Please ensure that 'Allow edits from maintainers' is checked. PRs without this option may be closed.

@changeset-bot

changeset-bot Bot commented Jun 12, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 2852496

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@sveltejs/kit Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@Nic-Polumeyv Nic-Polumeyv force-pushed the fix-inline-unused-files branch from 71ffff6 to 47051f3 Compare June 12, 2026 06:18
Comment thread packages/kit/src/exports/vite/build/build_service_worker.js

@teemingc teemingc left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

We ought to avoid creating a new test app for this and instead reuse the one at packages/kit/test/apps/options-3 which is already configured to inline the app.

Comment thread packages/kit/test/prerendering/inline/test/tests.spec.js Outdated
Comment thread packages/kit/src/exports/vite/index.js
Comment thread packages/kit/test/apps/options-3/test/test.js Outdated
Comment thread packages/kit/test/apps/options-3/test/test.js Outdated
Comment thread packages/kit/test/apps/options-3/test/test.js Outdated
@Nic-Polumeyv Nic-Polumeyv requested a review from teemingc June 12, 2026 12:15

@teemingc teemingc left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks!

@teemingc teemingc merged commit b82ba81 into sveltejs:main Jun 12, 2026
25 of 26 checks passed
@github-actions github-actions Bot mentioned this pull request Jun 12, 2026
teemingc pushed a commit that referenced this pull request Jun 14, 2026
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @sveltejs/kit@2.65.1

### Patch Changes


- fix: avoid importing the Vite development client code into builds with
a non-standard `NODE_ENV`
([#16023](#16023))


- fix: don't emit the unused bundle and stylesheet files when using
`bundleStrategy: 'inline'`
([#16025](#16025))


- fix: reset queries before navigating when `invalidateAll` is set
([#16014](#16014))


- fix: regression in loading assets for absolute path apps
([#16026](#16026))

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
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.

bundleStrategy: inline generating files that are not used

2 participants