As well as SvelteKit, the plugin options are used by other tooling that integrates with Svelte such as editor extensions.
Any options that don't belong to SvelteKit are passed through to vite-plugin-svelte, so you can set options like inspector here too. The experimental namespace is shared — SvelteKit reads its own flags and forwards the rest.
[!LEGACY]
Prior to SvelteKit 3, config lived in a svelte.config.js file, which is no longer supported. The ability to configure SvelteKit via vite.config.js was added in version 2.62.
Type helper to make it easier to use vite.config.ts
accepts a direct
{@link
UserConfig
}
object, or a function that returns it.
The function receives a
{@link
ConfigEnv
}
object.
Type helper to make it easier to use vite.config.ts
accepts a direct
{@link
UserConfig
}
object, or a function that returns it.
The function receives a
{@link
ConfigEnv
}
object.
As well as SvelteKit, the plugin options are used by other tooling that integrates with Svelte such as editor extensions.
Any options that don't belong to SvelteKit are passed through to vite-plugin-svelte, so you can set options like inspector here too. The experimental namespace is shared — SvelteKit reads its own flags and forwards the rest.
[!LEGACY]
Prior to SvelteKit 3, config lived in a svelte.config.js file, which is no longer supported. The ability to configure SvelteKit via vite.config.js was added in version 2.62.
preprocess script block with vite pipeline.
Since svelte5 this is not needed for typescript anymore
false
:false// default value})})]});
style
Use vitePreprocess() to enable CSS preprocessors in <style> tags: PostCSS, SCSS, Less, Stylus, and SugarSS.
script
Use vitePreprocess({ script: true }) if:
your project is before Svelte 5
you are using advanced TypeScript features that emit code (check vitePreprocess documentation)
TypeScript is supported natively in Svelte 5, so if you are using Svelte 5 and you don’t need to use advanced TypeScript features that emit code, you probably don’t need to use vitePreprocess.
Add-ons
Run npx sv add to set up many different complex integrations with a single command including:
prettier (formatting)
eslint (linting)
vitest (unit testing)
playwright (e2e testing)
better-auth (auth)
tailwind (CSS)
drizzle (DB)
paraglide (i18n)
mdsvex (markdown)
storybook (frontend workshop)
adapters (hosting)
mcp (LLM tooling)
Packages
Check out the packages page for a curated set of high quality Svelte packages. You can also see sveltesociety.dev for additional libraries, templates, and resources.
Additional integrations
svelte-preprocess
svelte-preprocess has some additional functionality not found in vitePreprocess such as support for Pug, Babel, and global styles. However, vitePreprocess may be faster and require less configuration, so it is used by default. Note that CoffeeScript is not supported by SvelteKit.
Since SvelteKit projects are built with Vite, you can use Vite plugins to enhance your project. See a list of available plugins at vitejs/awesome-vite.
Integration FAQs
The SvelteKit FAQ answers many questions about how to do X with SvelteKit, which may be helpful if you still have questions.