A fork of the official Svelte plugin for Vite that routes all Svelte compilation through the experimental Rust compiler @mrwaip/svelte-rs. The plugin API stays compatible with @sveltejs/vite-plugin-svelte.
There is no stable release yet — every build is published under a dist-tag, so always install by tag. Installing without one resolves to latest, which is not maintained and points at an old build.
# Vite 8 (branch `rust`)
npm install --save-dev @mrwaip/vite-plugin-svelte@canary
# Vite 6 / 7 (branch `rust-vite-7`)
npm install --save-dev @mrwaip/vite-plugin-svelte@vite7| Branch | npm tag | Vite | Svelte |
|---|---|---|---|
rust |
canary |
^8.0.0-beta.7 || ^8.0.0 |
^5.46.4 |
rust-vite-7 |
vite7 |
^6.3.0 || ^7.0.0 |
^5.46.4 |
The Rust compiler is an exactly pinned peer dependency — this branch requires @mrwaip/[email protected]. pnpm and npm 7+ install it for you; add it explicitly if your package manager does not auto-install peers:
npm install --save-dev @mrwaip/[email protected]When upgrading the plugin, read the pinned version out of its peerDependencies rather than assuming — the pin moves with each compiler release:
npm view @mrwaip/vite-plugin-svelte@canary peerDependencies// vite.config.js
import { defineConfig } from 'vite';
import { svelte } from '@mrwaip/vite-plugin-svelte';
export default defineConfig({
plugins: [
svelte({
// plugin options
})
]
});| Package | Changelog |
|---|---|
| @mrwaip/vite-plugin-svelte | Changelog |
Join the Svelte Discord server!
All scripts work from monorepo-root. The plugins are unbundled esm, a build step is not required while developing locally, but restarting local dev-servers can be needed to apply changes.
-
pnpm ito install dependencies -
pnpm playwright install chromiumto install required playwright browser binaries via local playwright-coreNOTE This repo uses
playwright-corewith a bin alias toplaywrightvia package.json script Callingpnpm dlx playwright install chromiumwill not work. -
pnpm checkandpnpm:testto validate changes -
pnpm formatto format source code -
pnpm test:unit,pnpm test:serveorpnpm test:buildto run a subset of tests -
pnpm test <e2e-directory-name>to focus a specific testsuite -
pnpm changesetto generate a changeset -
pnpm generate:typesto generate public types from jsdoc (this is required when changing types and validated in ci)
- Svelte and Vite creators, maintainers and contributors
- rixo - without svelte-hmr and your support this would not have been possible
- intrnl - initial inspiration from https://github.com/intrnl/vite-plugin-svelte