首页 > 其他分享 >vite 实现自动导入element plus icons 图标组件

vite 实现自动导入element plus icons 图标组件

时间:2024-07-15 21:08:50浏览次数:16  
标签:vue icons element unplugin plus import vite 图标

vite.config.js 配置

import { fileURLToPath, URL } from "node:url";
import Components from "unplugin-vue-components/vite";
import AutoImport from "unplugin-auto-import/vite";

import { ElementPlusResolver } from "unplugin-vue-components/resolvers";

import Icons from "unplugin-icons/vite";
import IconsResolver from "unplugin-icons/resolver";

import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import vueJsx from "@vitejs/plugin-vue-jsx";
import VueDevTools from "vite-plugin-vue-devtools";

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    vueJsx(),
    AutoImport({
      // 自动导入 Vue 相关函数,如:ref, reactive, toRef 等
      imports: ["vue", "vue-router"],
      // 生成自动导入的TS声明文件
      dts: "types/auto-import.d.ts", //这个文件会自动生成
    }),
    AutoImport({
      resolvers: [ElementPlusResolver()],
    }),
    Components({
      resolvers: [
        ElementPlusResolver(),
        // 引入 ant-design-vue 图标
        IconsResolver({
          enabledCollections: ["ep"],
        }),
      ],
    }),
    // 引入 iconfont
    Icons({
      autoInstall: true,
    }),
    VueDevTools(),
  ],
  resolve: {
    alias: {
      "@": fileURLToPath(new URL("./src", import.meta.url)),
    },
  },
});

  • 需要引入的内容:
import Icons from "unplugin-icons/vite";
import IconsResolver from "unplugin-icons/resolver";
  • vite配置
Components({
	resolvers: [
		ElementPlusResolver(),
		// 引入 ant-design-vue 图标
		IconsResolver({
			enabledCollections: ["ep"],
		}),
	],
})
Icons({
	autoInstall: true,
})

使用方式

<template>
  <div class="box">
    <div><i-ep-edit /></div>
    <div><i-ep-chat-dot-round /></div>
    <div><i-ep-close /></div>
  </div>
</template>
<script lang="ts" setup>
// import { ref, reactive, computed, onMounted, nextTick } from 'vue';
</script>
<style lang="stylus" scoped></style>

i-ep-图标名称

全局引入参考

import type { App } from "vue";
import * as ElementPlusIconsVue from "@element-plus/icons-vue";

// 注册所有图标
export function setupElIcons(app: App<Element>) {
  for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
    app.component(key, component);
  }
}

main.ts注册


import { setupElIcons } from "./icons";


export default {
  install(app: App<Element>) {
    // Element-plus图标
    setupElIcons(app);
  },
};

标签:vue,icons,element,unplugin,plus,import,vite,图标
From: https://www.cnblogs.com/jocongmin/p/18303967

相关文章

  • MyBatis Plus分页实现详解
    MyBatisPlus分页实现详解在当今的软件开发领域,数据分页是一项非常常见且重要的功能。无论是对于提升用户体验,还是减轻服务器压力,分页都扮演着至关重要的角色。MyBatisPlus作为一款优秀的ORM框架,其内置的分页功能因其高效、易用而广受开发者喜爱。本文将深入探讨MyBatisP......
  • vue项目使用element组件库
    在一个尚未与逆行的项目中安装——右键项目,选中在集成终端中打开 输入[email protected]或者npmielement-ui-S回车(下载需要等待一段时间)运行完成后打开node_modules,如果可以找到element-ui则安装成功 使用——在main.js中加入如下代码//引......
  • MoneyPrinterPlus全面支持本地Ollama大模型
    MoneyPrinterPlus现在支持批量混剪,一键AI生成视频,一键批量发布短视频这些功能了。之前支持的大模型是常用的云厂商,比如OpenAI,Azure,Kimi,Qianfan,Baichuan,TongyiQwen,DeepSeek这些。支持云厂商的原因是现在大模型使用基本都很便宜,并且大厂的稳定性,性能都比本地搭建要好很多......
  • mybatisPlus使用sql注入器实现真正批量插入
    注入器packagecom.ruoyi.framework.interceptor;importcom.baomidou.mybatisplus.core.injector.AbstractMethod;importcom.baomidou.mybatisplus.core.injector.DefaultSqlInjector;importcom.baomidou.mybatisplus.extension.injector.methods.InsertBatchSomeColumn......
  • 2025年美国拉斯维加斯国际烟草展览会Tobacco Plus Expo
    展会时间:2025年1月29日-1月31日展会地点:拉斯维加斯会展中心展会周期:一年一届主办单位:TMGInc.展品范围各种香烟、卷烟、雪茄、电子烟、水烟等;烟具、烟缸、火机、火柴等;烟丝、卷烟过滤嘴、卷烟纸、烟用化学品、粘合剂、香精和香精材料等;展会介绍   TPE是最大的优......
  • Vue3+Element Plus 使用sortablejs对el-table表格进行拖拽
    sortablejs官网:点击跳转一、安装sortablejsnpminstallsortablejs--save二、 页面按需引入importSortablefrom'sortablejs';三、组件方法1.temlate:<template><el-tableref="tableHeader":data="tableData"row-key="id"style=&quo......
  • vue3+Element Plus 自定义表格单选 多选
    项目背景:用vue3+elementplus做一套考试系统功能场景:添加试题中分为客观题、主观题两种类型,在客观题会出现单选题、多选题两种类型就会导致单选题只能勾选一个答案、多选题能勾选多个答案。效果图废话不说直接上代码<el-buttonclass="btn"icon="Plus"plainst......
  • ElementUI 本身没有提供年份范围选择组件,但可以通过封装两个年份选择器来实现类似的功
    ElementUI本身没有提供年份范围选择组件,但可以通过封装两个年份选择器来实现类似的功能。以下是一个使用Vue2和ElementUI实现年份范围选择器的示例代码: <script>exportdefault{name:'YearRangePicker',//接收父组件传入的年份范围数据props:{value:{......
  • 静态html vue3 element-plus 示例页面
    代码:<!doctypehtml><html><head><metacharset="utf-8"><title>example</title><!--复制于文件:https://unpkg.com/[email protected]/dist/vue.global.js--><scriptsrc="/......
  • element el-table 设置行高 和表头高度
    https://blog.csdn.net/m0_71645665/article/details/139296035<divstyle="height:90%;overflow-y:scroll"><el-table:data="tableData"style="width:100%;"row-key="id"border:default-expan......