首页 > 其他分享 >Vite按需导入element-plus组件和icon

Vite按需导入element-plus组件和icon

时间:2024-07-06 23:31:25浏览次数:11  
标签:vue element unplugin 导入 plus import Vite

Vue3-Vite项目中使用element-plus,按需导入element-plus组件和el-icon,以及自动导入Vue相关函数。

如果你对打包后的文件大小不是很在乎,那么使用完整导入会更方便。配置也更加简单,可以直接参考element-plus的官网。

安装依赖

npm i element-plus @element-plus/icons-vue
npm i unplugin-auto-import unplugin-vue-components unplugin-icons unplugin-element-plus -D

vite.config.js

import { fileURLToPath, URL } from 'node:url'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

// 自动导入
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
// 自动导入图标
import Icons from 'unplugin-icons/vite'
import IconsResolver from 'unplugin-icons/resolver'
import ElementPlus from 'unplugin-element-plus/vite'


// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    // 按需导入,自动导入
    AutoImport({
      // 自动导入 Vue 相关函数,如:ref, reactive, toRef 等
      imports: ['vue'],
      // 自动导入 Element Plus 相关函数,如:ElMessage, ElMessageBox... (带样式)
      resolvers: [
        ElementPlusResolver(),
        // 自动导入图标组件
        IconsResolver({
          prefix: 'Icon',
        })
      ],
    }),
    Components({
      resolvers: [
        // 自动注册图标组件
        IconsResolver({
          // 前缀(经测试,该选项无作用,图标依然只能通过 i-ep-xxx 调用)
          // <el-icon><Lock /></el-icon>  这样按需引入的话,这种形式的el-icon code就用不了了
          // 只能 <el-icon><i-ep-lock /></el-icon>
          enabledCollections: ['ep'],
        }),
        // 自动导入 Element Plus 组件
        ElementPlusResolver({
          importStyle: 'sass'
        })
      ],
    }),
    Icons({
      autoInstall: true,
    }),
    // 手动导入 el 组件,会自动添加对应的 css
    // 替换默认语言
    ElementPlus({
      defaultLocale: 'zh-cn',
      useSource: true
    }),
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  }
})

element-plus官网所使用的el-icon格式化为

而采用以上按需导入icon的方法则需要使用以下图标格式

本文章参考内容:

标签:vue,element,unplugin,导入,plus,import,Vite
From: https://www.cnblogs.com/sybkl/p/18288070

相关文章

  • MyBatisPlus
    1特点mybatis-plus是在mybatis基础上进行二次封装的一套orm框架,对mybatis只做增强不做改变,不会对项目中原生mybatis代码产生任何影响,完全兼容mybatis;优点:mybatis-plus只需要做简单的配置,即可快速进行单表CRUD操作,无需编写sql语句;mybatis-plus提供了内置插件,提供分页,逻辑......
  • 解决Mybatisplus中没有Db类静态工具的方案--提高版本
    方案:将两个的版本都提高即可解决Mybatis—plus的依赖文件<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3</version></dependency>&......
  • 第1章 认识 Vite
    明白了,这里是第1章内容的详细展开版本:第1章认识Vite1.什么是ViteVite是一个由尤雨溪(Vue.js的创始人)开发的前端构建工具,旨在提供极快的开发体验。Vite的名字来源于法语,意为“快速”,这正是它的核心理念。1传统构建工具的挑战传统的构建工具(如Webpack、Parcel......
  • mybatis-plus分表
    Mysql是当前互联网系统中使用非常广泛的关系数据库,具有ACID的特性。但是mysql的单表性能会受到表中数据量的限制,主要原因是B+树索引过大导致查询时索引无法全部加载到内存。读取磁盘的次数变多,而磁盘的每次读取对性能都有很大的影响。这时一个简单可行的方案就是分表(当然土豪也......
  • MyBatis-Plus-实用的功能自动填充字段
    前言:java项目用到了mybatis-plus,在一些类里面需要在更新时候,统一设置,修改人,修改ID,修改时间。新增时候设置创建人,创建时间等基础类:@DatapublicabstractclassBaseModelimplementsSerializable{/***逻辑删除*/@TableField(value="is_delete",......
  • c++ primer plus 第15章友,异常和其他:15.1.2 友元成员函数
    #c++primerplus第15章友,异常和其他:15.1.2友元成员函数提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:15.1.2友元成员函数提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言15.1.2友元成员函数程序清单15.4tvfm......
  • c++ primer plus 第15章友,异常和其他:15.1.3 其他友元关系
    c++primerplus第15章友,异常和其他:15.1.3其他友元关系提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加15.1.3其他友元关系提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录c++primerplus第15章友,异常和其他:15.1.3其他......
  • 香橙派5plus上跑云手机方案一 redroid(带硬件加速)
    首发地址:https://mp.weixin.qq.com/s/1e8er_amC94DTVCaNbSuUw前言折腾这玩意倒不是为了用来玩游戏啥的,只是想在逆向APP的时候少一点对手机的依赖。毕竟手机刷机步骤也挺烦,一不留神还容易变砖。像一些对环境检测不严格的APP就可以在上面测试,也方便后面更改系统源码刷机。不过可......
  • 跟我一起学习和开发动态表单系统-前端用vue、elementui实现方法(3)
    基于Vue、ElementUI和SpringBoot+MyBatis的动态表单系统前端实现解析在现代企业信息系统中,动态表单是一种非常常见的功能。它可以根据业务需求灵活地调整表单结构,以满足不同的数据收集和展示需求。在本文中,我们将探讨一种基于Vue、ElementUI和SpringBoot+MyBatis......
  • element 手写季度组件
    组件:<template><divclass="time_quarter"><markstyle="position:fixed;top:0;bottom:0;left:0;right:0;background:rgba(0,0,0,0);z-index:999;"v-show="showSeason"@click.stop="showSeason=false&q......