elementPlus自动导入图标不生效的解决办法

  

写成这样就可以了。如果没生效就继续往下看看配置有什么不同吧。


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"
  }

如果有其它解决方法,欢迎留言评论(原创,如需转载请注明出处)

你可能感兴趣的:(elementPlus自动导入图标不生效的解决办法)