写成这样就可以了。如果没生效就继续往下看看配置有什么不同吧。
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 { fileURLToPath, URL } from 'node:url'
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.重点来了,官网是真坑,按需引入的icon不给示例。兜兜转转从按需导入icon的仓库代码里看到了i-ep前缀的写法。
// 这样才会生效!!!
5.input加icon。要使用插槽的方式才会生效
引入相关版本信息:@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"
}
如果有其它解决方法,欢迎留言评论(原创,如需转载请注明出处)