Vite: Simplify preprocessor to make it work with Svelte 5 and Vite 6 #15274
+22
−165
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #15250
This PR simplifies our Vite integration even more. It turns out that in some projects (see #15250 for the exact repro), the way we invoke
svelte-preprocess
was actually causing issues in Vite since with Vite, it's expected to use thesveltePreprocess
version exported bysveltejs/vite-plugin-svelte
.While trying to change this we noticed that there are different versions of
sveltejs/vite-plugin-svelte
for Vite 5 and Vite 6 which caused us to investigate even more and we noticed that we do not even need to recursively call into thesveltePreprocess()
as every plugin is run after each other anyways. This allows us to drop the dependency onsvelte-preprocess
and simplify the code a bit more, registering only a(string) => string
style transformer.Test Plan
This was tsted on the repro repo from #15250 as well as the SvelteKit setup from my playgrounds. Furthermore we tested various combinations of
svelte
,@sveltejs/vite-plugin-svelte
andvite
in our integration test to ensure everything works as expected.