Svelte 插件
Svelte 插件提供了对 Svelte 组件(.svelte 文件)的支持,插件内部集成了 svelte-loader。
快速开始
安装插件
你可以通过如下的命令安装插件:
npm add @rsbuild/plugin-svelte -D
注册插件
你可以在 rsbuild.config.ts 文件中注册插件:
rsbuild.config.ts
import { pluginSvelte } from '@rsbuild/plugin-svelte'; export default { plugins: [pluginSvelte()], };
注册插件后,你可以在代码中引入 *.svelte 单文件组件。
选项
如果你需要自定义 Svelte 的编译行为,可以使用以下配置项。
svelteLoaderOptions
传递给 svelte-loader 的选项,请查阅 svelte-loader 文档 来了解具体用法。
- 类型:
SvelteLoaderOptions - 默认值:
const defaultOptions = { compilerOptions: { dev: isDev, }, preprocess: require('svelte-preprocess')(), emitCss: isProd && !rsbuildConfig.output.injectStyles, hotReload: isDev && rsbuildConfig.dev.hmr, };
pluginSvelte({ svelteLoaderOptions: { preprocess: null, }, });
preprocessOptions
传递给 svelte-preprocess 的选项,请查阅 svelte-preprocess 文档 来了解具体用法。
- 类型:
AutoPreprocessOptions - 默认值:
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 }; }, }, });
注意事项
目前 svelte-loader 暂不支持 Svelte v5 热更新,详见 svelte-loader - Hot Reload。