
处理 vite 中按需引入 vant 时表达式组件无样式的问题
当在 vite 框架中按需引入 vant ui 时,部分以 javascript 表达式形式引用的组件可能无法正确加载样式,而标签形式引用的组件则正常。这通常与插件配置和组件类型有关。
解决方法
有两种解决方法:
方法 1:使用 unplugin-auto-import 插件
- 安装 unplugin-auto-import 插件:npm install -d unplugin-auto-import。
- 在 vite.config.js 中配置插件:
import autoimport from 'unplugin-auto-import/vite'
export default {
plugins: [
autoimport({
imports: ['vue'],
resolvers: [
// add vant resolver
{
id: 'vant',
from: 'vant',
name: 'vant',
resolve: (name) => `vant/es/${name}/style`,
},
],
}),
],
}方法 2:手动注册组件并导入样式
如果不想使用插件,可以手动注册函数形式的组件并导入其样式:
import { Toast } from 'vant'
import { ImagePreview } from 'vant'
import 'vant/es/toast/style'
import 'vant/es/image-preview/style'
app.use(Toast)
app.use(ImagePreview)注意:
- 使用方法 1 时,需要确保已安装 vant 版本为 4.6.7 或更高。
- 使用方法 2 时,需要删除 sfc 中对函数形式组件的手动导入语句,否则自动导入将失效。










