引言
Element-Plus 官方提供了四种 安装图标方式 方式,本文将详细介绍如何通过自动导入方式。从 Iconify 中自动导入任何图标集。
本篇参考官方 自动导入模板。
安装 Element-Plus
npm install element-plus
安装自动导入依赖
npm install -D unplugin-auto-import unplugin-vue-components
安装自动导入图标依赖
npm i -D unplugin-icons
自动导入配置
.eslintrc.cjs
自动导入函数 eslint 规则引入
"extends": [ "./.eslintrc-auto-import.json" ]
tsconfig.json
自动导入TS类型声明文件引入
{ "include": ["src/**/*.d.ts"] }
vite.config.ts
import path from 'path' import { defineConfig } from 'vite' import Vue from '@vitejs/plugin-vue' import Icons from 'unplugin-icons/vite' import IconsResolver from 'unplugin-icons/resolver' import AutoImport from 'unplugin-auto-import/vite' import Components from 'unplugin-vue-components/vite' import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' const pathSrc = path.resolve(__dirname, 'src') export default defineConfig({ resolve: { alias: { '@': pathSrc, }, }, plugins: [ Vue({ reactivityTransform: true, }), AutoImport({ // Auto import functions from Vue, e.g. ref, reactive, toRef... // 自动导入 Vue 相关函数,如:ref, reactive, toRef 等 imports: ['vue', '@vueuse/core'], dirs: [path.resolve(pathSrc, 'composables')], // Auto import functions from Element Plus, e.g. ElMessage, ElMessageBox... (with style) // 自动导入 Element Plus 相关函数,如:ElMessage, ElMessageBox... (带样式) resolvers: [ ElementPlusResolver(), // Auto import icon components // 自动导入图标组件 IconsResolver({}), ], vueTemplate: true, dts: path.resolve(pathSrc, 'typings', 'auto-imports.d.ts'), }), Components({ resolvers: [ // Auto register icon components // 自动注册图标组件 IconsResolver({ enabledCollections: ['ep'], }), // Auto register Element Plus components // 自动导入 Element Plus 组件 ElementPlusResolver(), ], dts: path.resolve(pathSrc, 'typings', 'components.d.ts'), }), Icons({ autoInstall: true, }), ], })
自动导入图标使用
默认名称格式: i-ep-图标名 ,图标名在 Element-Plus 官方-图标集合 查询
<div class="avatar"> <img :src="userStore.user.avatar + '?imageView2/1/w/80/h/80'" /> <!-- i-ep-图标名(CaretBottom ) --> <i-ep-CaretBottom /> </div>
效果如下:
自动导入图标样式
如何修改通过自动导入图标的大小和颜色样式?
<el-icon :size="12" color="#409eff"> <i-ep-CaretBottom /> </el-icon>
开源项目
- 微服务商城项目
Github | Gitee | |
开源组织 | 有来开源组织 | 有来开源组织 |
后端 | youlai-mall📖 | youlai-mall📖 |
前端 | mall-admin🌎 | mall-admin🌎 |
移动端 | mall-app🌎 | mall-app🌎 |
前后端分离项目
Github |
Gitee | |
开源组织 | 有来开源组织 | 有来开源组织 |
后端 | youlai-boot📖 | youlai-boot📖 |
前端 | vue3-element-admin🌎 | vue3-element-admin🌎 |