diff --git a/.changeset/shaggy-ravens-unite.md b/.changeset/shaggy-ravens-unite.md new file mode 100644 index 000000000000..350d2cf50d5d --- /dev/null +++ b/.changeset/shaggy-ravens-unite.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/kit': patch +--- + +fix: ignore non-entry-point CSS files during inlining diff --git a/packages/kit/src/exports/vite/build/build_server.js b/packages/kit/src/exports/vite/build/build_server.js index 47a9484eb40f..96ce9a7ed5fa 100644 --- a/packages/kit/src/exports/vite/build/build_server.js +++ b/packages/kit/src/exports/vite/build/build_server.js @@ -47,7 +47,12 @@ export function build_server_nodes(out, kit, manifest_data, server_manifest, cli css.filter(asset => client_stylesheets.has(asset.fileName)) .forEach((asset) => { if (asset.source.length < kit.inlineStyleThreshold) { + // We know that the names for entry points are numbers. const [index] = basename(asset.fileName).split('.'); + // There can also be other CSS files from shared components + // for example, which we need to ignore here. + if (isNaN(+index)) return; + const server_stylesheet = server_stylesheets.get(+index); const file = `${out}/server/stylesheets/${index}.js`; diff --git a/packages/kit/test/apps/options/source/components/SharedCSS.svelte b/packages/kit/test/apps/options/source/components/SharedCSS.svelte new file mode 100644 index 000000000000..deda4b46551e --- /dev/null +++ b/packages/kit/test/apps/options/source/components/SharedCSS.svelte @@ -0,0 +1,9 @@ +

+ This component is imported in multiple pages and therefore its CSS lands in a separate CSS chunk +

+ + diff --git a/packages/kit/test/apps/options/source/pages/inline-assets/+page.svelte b/packages/kit/test/apps/options/source/pages/inline-assets/+page.svelte index 8a017caa2622..c0a95f45f3c1 100644 --- a/packages/kit/test/apps/options/source/pages/inline-assets/+page.svelte +++ b/packages/kit/test/apps/options/source/pages/inline-assets/+page.svelte @@ -1,8 +1,13 @@ -

Hello world!

+

+ Test that the fontsource is referenced correctly, while the shared CSS in SharedCSS doesn't cause + problems +

+