超详细!!!electron-vite-vue开发桌面应用之引入UI组件库element-plus(四)

news2024/9/21 14:49:48

云风网
云风笔记
云风知识库

一、安装element-plus以及图标库依赖

npm install element-plus --save
npm install @element-plus/icons-vue
npm i -D unplugin-icons

二、vite按需引入插件

npm install -D unplugin-vue-components unplugin-auto-import

unplugin-vue-components是一个用于Vue.js的插件,它允许你导入Vue组件,而不需要在你的代码中显式地导入它们。这个插件可以让你按需导入组件,从而减少初始加载大小。

unplugin-auto-import是一个用于Vue.js的插件,它可以自动导入Vue.js的相关API,如Vue自身,Vue的RFC(响应式),Composition API,以及其他一些常用的Vue功能。

三、vite.config.ts文件配置引用element-plus

import { defineConfig } from 'vite'
import path from 'node:path'
import electron from 'vite-plugin-electron/simple'
import vue from '@vitejs/plugin-vue'
import AutoImport from 'unplugin-auto-import/vite'//自动导入相关api
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'
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    AutoImport({
      resolvers: [
        // 自动导入elementPlus组件
        ElementPlusResolver(),
        // 自动导入图标组件 
        IconsResolver({
          prefix: 'Icon',
        })
      ],
      dts: path.resolve(__dirname, 'types/auto-imports.d.ts')
    }),
    Components({
      resolvers: [
        ElementPlusResolver(),
        // 自动注册图标组件
        IconsResolver({
          enabledCollections: ['ep'],
        })
      ],
      dts: path.resolve(__dirname, 'types/components.d.ts')
    }),
    //图标的导入配置
    Icons({
      autoInstall: true,
    }),
    vue(),
    electron({
      main: {
        // Shortcut of `build.lib.entry`.
        entry: 'electron/main.ts',
        onstart(args) {
          args.reload()
          // args.startup()
        }
      },
      preload: {
        // Shortcut of `build.rollupOptions.input`.
        // Preload scripts may contain Web assets, so use the `build.rollupOptions.input` instead `build.lib.entry`.
        input: path.join(__dirname, 'electron/preload.ts'),
      },
      // Ployfill the Electron and Node.js API for Renderer process.
      // If you want use Node.js in Renderer process, the `nodeIntegration` needs to be enabled in the Main process.
      // See 👉 https://github.com/electron-vite/vite-plugin-electron-renderer
      renderer: process.env.NODE_ENV === 'test'
        // https://github.com/electron-vite/vite-plugin-electron-renderer/issues/78#issuecomment-2053600808
        ? undefined
        : {},
    }),
    
  ],
})

四、element-plus应用到页面

 <el-button type="success" @click="count++">count is {{ count }}</el-button>
 <el-icon><IEpPlus/></el-icon>
 <i-ep-delete />

页面渲染效果如下

在这里插入图片描述

注意事项

Iconify 图标结构由三部分组成:{prefix}-{collection}-{icon}
prefix:icon的前缀,默认值为’i’,可设置成false,如果设置成false,那么组件使用就变成
collection: 默认是iconify
icon: 图标集中对应的图标名字
collection对应的是 enabledCollections配置,默认是iconify上的所有图标。这里设置的是[‘ep’],表示的是Iconify 中的 element-plus 的图标,也可以设置mdi、ant-design,它会自动根据名称在package.json下载安装对应的图标集
Icons()表示会自动安装@iconify-json/ep的依赖,设置为true,他就会自动安装iconify 图标。

四、补充说明插件unplugin-vue-components和unplugin-auto-import

1、安装依赖运行后,根目录自动生成两个ts声明文件
components.d.ts
/* eslint-disable */
// @ts-nocheck
// Generated by unplugin-vue-components
// Read more: https://github.com/vuejs/core/pull/3399
export {}

/* prettier-ignore */
declare module 'vue' {
  export interface GlobalComponents {
    ElButton: typeof import('element-plus/es')['ElButton']
    HelloWorld: typeof import('./src/components/HelloWorld.vue')['default']
  }
}
auto-imports.d.ts
/* eslint-disable */
/* prettier-ignore */
// @ts-nocheck
// noinspection JSUnusedGlobalSymbols
// Generated by unplugin-auto-import
export {}
declare global {

}

这里直接注释app.vue中组件的引入代码

<script setup lang="ts">
// import HelloWorld from './components/HelloWorld.vue'
</script>

再次运行项目,组件正常显示,因为已经插件自动引入,无需手动页面路径引用

在这里插入图片描述

2、对于d.ts文件进行模块化管理

在这里插入图片描述

vite.config.ts文件进行自动导入路径配置

在这里插入图片描述
再次运行项目,组件正常显示

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2051403.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux-DNS域名解析服务

系列文章目录 提示&#xff1a;仅用于个人学习&#xff0c;进行查漏补缺使用。 1.Linux网络设置 2.LinuxDHCP服务 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 系列文章目录前言提示&#xff1a;以下是本篇文章…

扫描切除-实体轮廓:方程式驱动曲线路径vs螺旋线路径

最近,在使用solidworks2018的过程中,接触到扫描切除-实体轮廓命令,如图1-2所示。此命令可以使用一个实体来切除另一个实体,用来切除的实体可以按一定的轨迹运动。测试过程中发现,这个命令频繁出错,切除失败,体验实在是太差了。下面对比了在该命令下使用方程式驱动曲线和…

后端学习笔记(八)--HTML

1.HTML ​ *编写网页的一门语言 ​ *HTML(HyperText Markup Language)&#xff1a;超文本标记语言 ​ *超文本&#xff1a;超越了文本的限制&#xff0c;比普通文本更强大。除了文字信息&#xff0c;还可以定义图片、音频、视频等内容 ​ *标记语言&#xff1a;由标签构成的…

代码随想录DAY18 - 二叉树 - 08/17

目录 二叉搜索树的最小绝对差 题干 思路和代码 方法一&#xff1a;求中序序列 方法二&#xff1a;递归法双指针法 方法三&#xff1a;迭代法双指针法 二叉搜索树中的众数 题干 思路和代码 方法一&#xff1a;求中序序列 方法二&#xff1a;递归法双指针中序遍历 ​编…

基于 Konva 实现Web PPT 编辑器(一)

前言 目前Web PPT编辑比较好的库有PPTist(PPTist体验地址)&#xff0c;是基于DOM 的渲染方案&#xff0c;相比 Canvas 渲染的方案&#xff0c;在复杂场景下性能会存在一定的差距。不过确实已经很不错了&#xff0c;本应用在一些实现思路、难点攻克上也参考了pptist的思想&#…

1:html的介绍与基础1

目录 1.1html的介绍 1.2html的基础1 1.2.1标题&#xff0c;头部与基本的格式怎么写 1.2.1.1标题与基本格式 1.2.1.2头部 1.2.2段落 1.2.3链接 1.2.3.1基本的网页链接 1.2.3.2图像链接 1.2.4注释 1.1html的介绍 HTML是一种标记语言&#xff0c;用于创建&#xff0c;设…

EmguCV学习笔记 VB.Net和C# 下的OpenCv开发

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 笔者的博客网址&#xff1a;https://blog.csdn.net/uruseibest 本教程将分为VB.Net和C#两个版本分别进行发布。 教程VB.net版本请…

高效同步与处理:ADTF流服务在自动驾驶数采中的应用

目录 一、ADTF 流服务 1、流服务源&#xff08;Streaming Source&#xff09; 2、流服务汇&#xff08;Streaming Sink&#xff09; 二、数据链路 1、数据管道&#xff08;Data Pipe&#xff09; 2、子流&#xff08;Substreams&#xff09; 3、触发管道&#xff08;Tri…

遥感之常用各种指数总结大全

目前在遥感领域基本各种研究领域都会用到各种各样的指数&#xff0c;如水体指数&#xff0c;植被指数&#xff0c;农业长势指数&#xff0c;盐分指数&#xff0c;云指数&#xff0c;阴影指数&#xff0c;建筑物指数&#xff0c;水质指数&#xff0c;干旱指数等等众多。 本文对上…

Qt第十五章 动画和状态机

文章目录 动画框架动画架构动画框架类QPropertyAnimation串行动画组QSequentialAnimationGroup并行动画组QPararallelAnimationGroupQPauseAnimationQTimeLine窗口动画下坠效果抖动效果透明效果 状态机QStateQStateMachine 动画框架 动画架构 动画框架类 类名描述QAbstractAn…

字符串金额转换,字符串手机号屏蔽,身份证信息查看,敏感词替换

2135 在发票上面该写成零佰零拾零万贰仟壹佰叁拾伍元 我们用逆推法可以写成零零零贰壹叁伍->贰壹叁伍->2135 1.遍历获取到每一个数字&#xff0c;然后把大写放到数组里面&#xff0c;将数字当作索引&#xff0c;在数组里面查找大写 package stringdemo;import java.uti…

传输层安全性 ——TLS(Transport Layer Security)简介

TLS(Transport Layer Security)是一种广泛使用的安全协议,旨在确保互联网通信的隐私性和数据完整性。它是SSL(Secure Sockets Layer)的继任者,最初版本于1999年发布,最新版本是TLS 1.3。 TLS 握手为每个通信会话建立一个密码套件密码套件是一组算法,其中指定了一些细节…

如何轻松获取麒麟操作系统架构信息?

如何轻松获取麒麟操作系统架构信息&#xff1f; 一、使用uname -a命令二、用arch命令三、示例输出 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在使用麒麟操作系统&#xff08;Kylin OS&#xff09;时&#xff0c;了解系统的架构信息对于…

stm32单片机学习 - stm32 的命名规则

STM32命名规则: 以STM 32 F 103 C 8 T 6 A xxx为例:

动手学深度学习(pytorch)学习记录9-图像分类数据集之Fashion-MNIST[学习记录]

注&#xff1a;本代码在jupyter notebook上运行 封面图片来源 Fashion-MNIST是一个广泛使用的图像数据集&#xff0c;主要用于机器学习算法的基准测试&#xff0c;特别是图像分类和识别任务。Fashion-MNIST由德国的时尚科技公司Zalando旗下的研究部门提供。作为MNIST手写数字集…

Java并发类API——CompletionService

CompletionService 是 Java 中 java.util.concurrent 包的一部分&#xff0c;用于管理并发任务的执行&#xff0c;并以完成的顺序提供结果。它结合了线程池和阻塞队列的功能&#xff0c;用于提交任务并按照任务完成的顺序来检索结果&#xff0c;而不是按照任务提交的顺序。 接…

uni-app--》打造个性化壁纸预览应用平台(二)

&#x1f3d9;️作者简介&#xff1a;大家好&#xff0c;我是亦世凡华、渴望知识储备自己的一名前端工程师 &#x1f304;个人主页&#xff1a;亦世凡华、 &#x1f306;系列专栏&#xff1a;uni-app &#x1f307;座右铭&#xff1a;人生亦可燃烧&#xff0c;亦可腐败&#xf…

python语言day7 函数式编程 面向对象编程

Java 函数式编程_java函数式编程-CSDN博客 25.Java函数式编程-CSDN博客 函数式编程&#xff1a; 通过调用函数send_email()&#xff0c;完成业务需求。将具体的业务需求封装成一个函数这样的一种解决问题的思想称它为函数式编程。 在java中本来没有函数的概念&#xff0c;因为…

指针详解

目录 1. 内存 2. 编址​编辑 3. 指针变量和地址 1&#xff09;取地址操作符&#xff08;&&#xff09; 2&#xff09;指针变量 3&#xff09;指针类型 4&#xff09;解引用操作符 4. 指针变量的大小 5. 指针变量类型的意义 1&#xff09;指针的解引用 6. 指针 -…

Java使用XXL-Job-Admin创建和管理调度任务的指南

文章目录 一、调度中心添加任务的基本方法二、配置文件中的任务配置三、创建并调用调度任务的客户端四、配置RestTemplate 总结 在日常开发中&#xff0c;我们经常需要处理各种定时任务&#xff0c;而XXL-Job作为一款强大的分布式任务调度平台&#xff0c;为我们提供了简单易用…