vite 中推荐使用 unplugin-icons 实现图标按需自动导入,通过插件解析模板中 pascalcase 命名的图标组件(如 ),自动引入对应图标模块并内联为 svg,无需手动 import 或全量打包。

在 Vite 项目中实现图标库(如 Iconify 或 unplugin-icons)的按需自动导入,核心是借助插件在编译时解析模板中的图标组件名,动态引入对应图标模块,避免手动 import 和全量打包。主流且推荐的方式是使用 unplugin-icons 插件。
安装并配置 unplugin-icons
该插件支持 Vue、React、Svelte 等框架,自动将 <iconname></iconname> 转为实际图标组件,无需 import。
- 安装依赖:
npm install -D unplugin-icons @iconify/json - 在
vite.config.ts中添加插件(以 Vue 为例):
import Icons from 'unplugin-icons/vite'
import IconsResolver from 'unplugin-icons/resolver'
export default defineConfig({
plugins: [
// 自动解析图标组件(如 <tablerbrandgithub></tablerbrandgithub>)
Icons({
autoInstall: true, // 自动安装缺失的图标包(需配合 @iconify/json)
compiler: 'vue3', // 或 'vue2' / 'react' / 'solid'
scale: 1.2,
defaultStyle: 'vertical-align: middle;',
}),
// 可选:配合 unplugin-vue-components 实现图标组件自动注册(非必须)
],
})
直接在模板中使用图标组件
插件会将形如 <carbonlogogithub></carbonlogogithub> 的写法自动解析为对应图标,前提是图标名符合 [collection][icon] 命名规范(如 carbon-logo-github → CarbonLogoGithub)。
- 图标集合(collection)如
tabler、carbon、mdi需提前声明或由插件按需加载 - 首次使用未缓存的图标时,
autoInstall: true会自动下载对应@iconify/json子包(如@iconify/json/carbon),无需手动安装 - 支持属性传参:
<tablerbrandvue size="24" color="#42b883"></tablerbrandvue>
搭配 unplugin-vue-components 实现零配置自动导入(可选进阶)
若你已用 unplugin-vue-components 管理 UI 组件,可让图标也纳入自动导入体系,彻底省略 import 语句。
- 安装:
npm install -D unplugin-vue-components - 在 vite.config.ts 中配置 resolver:
import Components from 'unplugin-vue-components/vite'
import IconsResolver from 'unplugin-icons/resolver'
export default defineConfig({
plugins: [
Components({
resolvers: [
IconsResolver({
prefix: 'Icon', // 可选:统一前缀,如 <icontablerbrandgithub></icontablerbrandgithub>
enabledCollections: ['tabler', 'mdi', 'carbon'],
}),
],
}),
Icons({ compiler: 'vue3' }),
],
})
此时可写作 <icontablerbrandgithub></icontablerbrandgithub>,插件自动识别并导入,且不污染全局命名空间。
注意事项与常见问题
- 图标名大小写敏感,遵循 PascalCase 规则:文件名
tabler-brand-github.svg→ 组件名TablerBrandGithub - 本地 SVG 图标可通过
unplugin-icons的customCollections加载,适合私有图标库 - SSR 项目需确保图标在服务端也能解析,建议启用
ssr: true选项并检查 hydrate 行为 - 构建后图标代码会被内联为 inline SVG,体积小、无网络请求,真正按需
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











