安装插件

1
2
pnpm i @iconify/iconify -S
pnpm i vite-plugin-purge-icons @iconify/json -D

配置

1
2
3
4
5
6
7
8
9
10
// vite.config.js
import PurgeIcons from 'vite-plugin-purge-icons'

export default {
plugins: [
PurgeIcons({
/* PurgeIcons Options */
})
]
}
1
2
3
4
5
6
7
8
// main.js
import { createApp } from 'vue'
import App from './App.vue'

// 新增
import '@purge-icons/generated'

createApp(App).mount('#app')

封装全局组建

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// AppIcon.vue
<template>
<span :style="{ fontSize: size }">
<span class="iconify m-iconify" :data-icon="icon"></span>
</span>
</template>

<script setup lang="ts">
const props = defineProps({
icon: { type: String, required: true },
size: { type: String, default: '18' }
});
const { size, icon } = toRefs(props);
</script>

<style scoped lang="scss">
.m-iconify {
vertical-align: middle;
}
</style>

搜索图标

安装好图标库和插件后,可以在此搜索:
Icon Sets • Iconify

使用组件

image-20220103214904943

1
<app-icon icon="logos:discord-icon"></app-icon>