You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vuetify新版本按需打包MDI图标失败及图标显示异常求助

Vuetify新版按需引入MDI SVG图标解决方案

1. 移除过时配置项

新版Vuetify(v3及以上)已废弃iconfont参数,直接删除配置中的这一行即可解决类型错误问题。

2. 正确配置图标集

先确保已安装@mdi/js依赖,再按以下方式配置Vuetify:

import { createVuetify } from 'vuetify'
import { aliases, mdi } from 'vuetify/iconsets/mdi-svg'
// 按需引入需要的单个图标
import { mdiMap, mdiBike } from '@mdi/js'

const vuetify = createVuetify({
  icons: {
    defaultSet: "mdi",
    aliases: {
      ...aliases,
      // 可选:给图标设置别名,简化使用
      mapIcon: mdiMap,
      bikeIcon: mdiBike
    },
    sets: {
      mdi,
      // 不需要Font Awesome可删除此行
      // fa,
    },
  },
  components: {
    VDatePicker,
  },
  directives,
})

3. 正确使用SVG图标

按需引入的图标需通过:icon属性绑定使用,有两种方式:

方式一:直接绑定引入的图标变量

<v-tab :value="Tabs.routes">
  <v-icon :icon="mdiMap"></v-icon>All routes
</v-tab>
<v-tab :value="Tabs.newRide">
  <v-icon :icon="mdiBike"></v-icon>New Ride
</v-tab>

方式二:使用配置中设置的别名

<v-tab :value="Tabs.routes">
  <v-icon icon="mapIcon"></v-icon>All routes
</v-tab>
<v-tab :value="Tabs.newRide">
  <v-icon icon="bikeIcon"></v-icon>New Ride
</v-tab>

4. 清理冗余依赖(可选)

如果已完全切换到SVG图标,可移除@mdi/font依赖,彻底消除未使用的字体图标包体积。

排查要点

  • 确认@mdi/js安装正确,图标引入名称为驼峰格式(如mdiMap,而非字体图标用的mdi-bike)
  • 确保配置中sets里的mdi来自vuetify/iconsets/mdi-svg,而非字体版图标集

内容的提问来源于stack exchange,提问作者quilkin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 08:07:35