Vue 插件
Vue 插件提供了对 Vue 3 SFC(单文件组件)的支持,插件内部集成了 vue-loader v17 版本。
Tip
对于 Vue 3 JSX / TSX 语法,请使用 Vue JSX 插件。
快速开始
安装插件
你可以通过如下的命令安装插件:
注册插件
你可以在 rsbuild.config.ts 文件中注册插件:
rsbuild.config.ts
注册插件后,你可以在代码中引入 *.vue 单文件组件。
选项
如果你需要自定义 Vue 的编译行为,可以使用以下配置项。
vueLoaderOptions
传递给 vue-loader 的选项,请查阅 vue-loader 文档 来了解具体用法。
- 类型:
VueLoaderOptions - 默认值:
- 示例:
splitChunks
在 chunkSplit.strategy 设置为 split-by-experience 时,Rsbuild 默认会自动将 vue 和 router 相关的包拆分为单独的 chunk:
lib-vue.js:包含vue、vue-loader,以及它们的子依赖(@vue/shared,@vue/reactivity,@vue/runtime-dom,@vue/runtime-core)。lib-router.js:包含vue-router。
该选项用于控制这一行为,决定是否需要将 vue 和 router 相关的包拆分为单独的 chunk。
- 类型:
- 默认值:
- 示例:
test
用于自定义 Vue 单文件组件(SFC)的匹配规则。
- 类型: Rspack.RuleSetCondition
- 默认值:
/\.vue$/ - 版本:
>= 1.2.1
通过该选项,你可以扩展 Vue 插件对其他文件类型的处理能力。例如,先使用某个插件或 loader 将 .md 文件转换为 Vue 组件,然后可以在 Vue 插件中通过 test 选项同时匹配 .vue 和 .md 文件:
常见问题
/deep/ 选择器导致编译报错
/deep/ 是从 Vue v2.7 开始废弃的用法,它不是一个合法的 CSS 语法,因此在编译时,Lightning CSS 等 CSS 编译工具会抛出错误。
你可以使用 :deep() 代替它,更多用法参考 Vue - Deep Selectors。
你也可以参考 Vue - RFC 0023 了解更多。

