Svelte plugin
The Svelte plugin provides support for Svelte components (.svelte files). The plugin internally integrates svelte-loader.
Quick start
Install plugin
You can install the plugin using the following command:
npm add @rsbuild/plugin-svelte -D
Register plugin
You can register the plugin in the rsbuild.config.ts file:
rsbuild.config.ts
import { pluginSvelte } from '@rsbuild/plugin-svelte'; export default { plugins: [pluginSvelte()], };
After registering the plugin, you can import *.svelte files in your code.
Options
To customize the compilation behavior of Svelte, use the following options.
svelteLoaderOptions
Options passed to svelte-loader, please refer to the svelte-loader documentation for detailed usage.
- Type:
SvelteLoaderOptions - Default:
const defaultOptions = { compilerOptions: { dev: isDev, }, preprocess: require('svelte-preprocess')(), emitCss: isProd && !rsbuildConfig.output.injectStyles, hotReload: isDev && rsbuildConfig.dev.hmr, };
pluginSvelte({ svelteLoaderOptions: { preprocess: null, }, });
preprocessOptions
Options passed to svelte-preprocess, please refer to the svelte-preprocess documentation for detailed usage.
- Type:
AutoPreprocessOptions - Default:
undefined
interface AutoPreprocessOptions { globalStyle: { ... }, replace: { ... }, typescript: { ... }, scss: { ... }, sass: { ... }, less: { ... }, stylus: { ... }, babel: { ... }, postcss: { ... }, coffeescript: { ... }, pug: { ... }, }
pluginSvelte({ preprocessOptions: { aliases: [ ['potato', 'potatoLanguage'], ['pot', 'potatoLanguage'], ], /** Add a custom language preprocessor */ potatoLanguage({ content, filename, attributes }) { const { code, map } = require('potato-language').render(content); return { code, map }; }, }, });
Notes
Currently, svelte-loader does not support HMR for Svelte v5, see svelte-loader - Hot Reload.