elementplus按需引入踩坑记录
elementPlus 自动导入图标不生效的解决办法
<i-ep-edit></i-ep-edit>
写成这样就可以了。如果没生效就继续往下看看配置有什么不同吧。
1.安装图标组件
npm i element-plus @element-plus/icons-vue -S
2.安装按需导入的插件
npm i unplugin-auto-import unplugin-vue-components unplugin-icons -D
3.配置文件根据 elementPlus 官网给的链接配置 vite.config.js。这都没什么问题
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";
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
Vue(),
AutoImport({
// Auto import functions from Vue, e.g. ref, reactive, toRef...
// 自动导入 Vue 相关函数,如:ref, reactive, toRef 等
imports: ["vue"],
// Auto import functions from Element Plus, e.g. ElMessage, ElMessageBox... (with style)
// 自动导入 Element Plus 相关函数,如:ElMessage, ElMessageBox... (带样式)
resolvers: [
ElementPlusResolver(),
// Auto import icon components
// 自动导入图标组件
IconsResolver({
prefix: "Icon",
}),
],
}),
Components({
resolvers: [
// Auto register icon components
// 自动注册图标组件
IconsResolver({
enabledCollections: ["ep"],
}),
// Auto register Element Plus components
// 自动导入 Element Plus 组件
ElementPlusResolver(),
],
}),
Icons({
autoInstall: true,
}),
],
resolve: {
alias: {
"@": fileURLToPath(new URL("./src", import.meta.url)),
},
},
});
4.重点来了,官网是真坑,需要 i-ep 前缀的写法。
<i-ep-edit></i-ep-edit>
5.input 加 icon。要使用插槽的方式才会生效
<el-input placeholder="搜索文本框">
<template #suffix>
<i-ep-search></i-ep-search>
</template>
</el-input>
6.引入相关版本信息:@iconify-json/ep 是自动安装上的,如果你的 package.json 里没有,也需要手动安装下
"dependencies": {
"@element-plus/icons-vue": "^2.0.9",
"element-plus": "^2.2.15",
"vue": "^3.2.37"
},
"devDependencies": {
"@iconify-json/ep": "^1.1.7",
"@vitejs/plugin-vue": "^3.0.1",
"unplugin-auto-import": "^0.11.2",
"unplugin-icons": "^0.14.9",
"unplugin-vue-components": "^0.22.4",
"vite": "^3.0.4"
}

浙公网安备 33010602011771号