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

参考文章:https://www.jianshu.com/p/23229850bb08

posted @ 2023-02-23 22:32  buildkay  阅读(433)  评论(0)    收藏  举报