Electron + ts + vue3 + vite

  1. 正常搭建脚手架:npm create vite@latest 项目名称
  2. 安装electron的相关依赖:注:安装时终端url要项目名那一层

  3. 安装npm install electron -D
  4. 安装打包工具:npm install electron-builder -D
  5. 开发工具:npm install electron-devtools-installer -D
  6. 配置文件:npm install vite-plugin-electron -D,npm install vite-plugin-electron-renderer -D
  7. 在项目的根目录下新建electron-main文件夹,之后新建index.ts,配置如下:

    import { app, BrowserWindow } from "electron";
    import * as path from "path";// 本地启动的vue项目路径
    const vueProjectAddress = "http://localhost:5173"
    /*** 创建一个新的窗口*/
    const createWindow = () =>{const win = new BrowserWindow({webPreferences: {contextIsolation: false, // 是否开启隔离上下文nodeIntegration: true, // 渲染进程使用Node API},});if (app.isPackaged) {win.loadFile(path.join(__dirname, "../index.html"));} else {win.loadURL(vueProjectAddress);}
    };
    // 打开窗口
    app.whenReady().then(() => {createWindow(); // 创建窗口app.on("activate", () => {if (BrowserWindow.getAllWindows().length === 0) createWindow();});
    });
    // 关闭窗口
    app.on("window-all-closed", () => {if (process.platform !== "darwin") {app.quit();}
    });
    

  8. 在tsconfig.app.json中的include增加配置"electron-main/**/*.ts" 
    "include": [
    "src/**/*.ts",
    "src/**/*.tsx",
    "src/**/*.vue",
    "electron-main/**/*.ts"
    ]

  9. 在vite.config.ts配置
    import electron from "vite-plugin-electron";
    import electronRenderer from "vite-plugin-electron-renderer";
    export default defineConfig({plugins: [vue(),electron({entry: "electron-main/index.ts", // 主进程文件}),electronRenderer(),],build: {emptyOutDir: false, // 默认情况下,若 outDir 在 root 目录下,则 Vite 会在构建时清空该目录},
    })
    

  10. 打开package.json,增加以下配置:
    {"name": "my-vue-app","private": true,"version": "0.0.0","main": "dist-electron/index.js", // 新增"scripts": {"dev": "vite","build": "vue-tsc && rimraf dist && vite build && electron-builder","preview": "vite preview"},// build 新增"build": {"appId": "com.smallpig.desktop","productName": "smallpig","asar": true,"copyright": "Copyright © 2022 smallpig","directories": {"output": "release/${version}"},"files": ["dist"],"mac": {"artifactName": "${productName}_${version}.${ext}","target": ["dmg"]},"win": {"target": [{"target": "nsis","arch": ["x64"]}],"artifactName": "${productName}_${version}.${ext}"},"nsis": {"oneClick": false,"perMachine": false,"allowToChangeInstallationDirectory": true,"deleteAppDataOnUninstall": false},// 新增"publish": [{"provider": "generic","url": "http://127.0.0.1:8080"}],"releaseInfo": {"releaseNotes": "版本更新的具体内容"}},"dependencies": {"electron-devtools-installer": "^3.2.0","vue": "^3.2.45"},"devDependencies": {"@vitejs/plugin-vue": "^4.0.0","electron": "^22.0.2","electron-builder": "^23.6.0","install": "^0.13.0","npm": "^9.3.0","polyfill-exports": "^0.4.0-beta.2","rimraf": "^4.1.0","typescript": "^4.9.3","vite": "^4.0.0","vite-plugin-electron": "^0.11.1","vite-plugin-electron-renderer": "^0.11.4","vue-tsc": "^1.0.11"}
    }

  11. 在npm run dev即可

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

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

相关文章

前端_001_html扫盲

文章目录 概念标签及属性常用全局属性head里常用标签body里常用标签表情符号 url编码 概念 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body></bod…

python爬虫 - 深入requests模块

&#x1f308;个人主页&#xff1a;https://blog.csdn.net/2401_86688088?typeblog &#x1f525; 系列专栏&#xff1a;https://blog.csdn.net/2401_86688088/category_12797772.html 目录 前言 一、下载网络文件 &#xff08;一&#xff09;基本步骤 &#xff08;二&…

高级java每日一道面试题-2024年10月8日-数据库篇[Redis篇]-谈—谈缓存穿透、缓存击穿和缓存雪崩,以及解决办法?

如果有遗漏,评论区告诉我进行补充 面试官: 谈—谈缓存穿透、缓存击穿和缓存雪崩&#xff0c;以及解决办法? 我回答: 在分布式系统和高并发场景中&#xff0c;缓存是提高系统性能和响应速度的重要手段。然而&#xff0c;如果缓存使用不当&#xff0c;可能会遇到一些问题&…

Windows下MYSQL8.0如何恢复root权限

误操作把root权限清掉导致数据库无法登录&#xff08;确实很难受&#xff09;&#xff0c;在网上找了很多方法&#xff0c;发现没有很行之有效的方法&#xff0c;在多方尝试终于找到了适合敏感宝宝体质的方法。 C:\Users\Administrator>mysql -u root -P3307 ERROR 1045 (2…

数据结构——遍历二叉树

目录 什么是遍历二叉树 根据遍历序列确定二叉树 例题&#xff08;根据先序中序以及后序中序求二叉树&#xff09; 遍历的算法实现 先序遍历 中序遍历 后序遍历 遍历算法的分析 二叉树的层次遍历 二叉树遍历算法的应用 二叉树的建立 复制二叉树 计算二叉树深度 计算二…

Redis 高可用方案

Redis 高可用性&#xff08;High Availability&#xff09;是指在 Redis 系统中实现持续的可用性&#xff0c;即使在发生硬件故障或其他意外情况下&#xff0c;系统仍能保持运行。 1 常用方案 为了实现 Redis 的高可用性&#xff0c;以下是几种常用方案&#xff1a; 1.1 使用…

常见校验算法介绍

文章目录 一、奇偶校验二、 校验和三、 BCC&#xff08;Block Check Character&#xff0c;块校验字符&#xff09;校验四、CRC&#xff08;循环冗余校验&#xff09;五、海明码校验六、MD5&#xff08;消息摘要算法第五版&#xff09;和 SHA&#xff08;安全哈希算法&#xff…

1688商品评论接口技术深度解析与实战代码实现

引言 在电商领域&#xff0c;商品评论是消费者购物决策的重要依据。1688作为国内领先的B2B电商平台&#xff0c;提供了丰富的商品评论接口&#xff0c;供商家和开发者获取、管理并展示商品评论数据。本文将详细介绍如何调用1688商品评论接口&#xff0c;并提供Python实战代码示…

系统架构设计师教程 第16章 16.1 嵌入式系统概述 笔记

16.1 嵌入式系统概述 嵌入式系统 (Embedded System) 是为了特定应用专门构建的计算机系统&#xff0c;其架构是随着嵌入式系统的逐步应用而发展形成。 16.1.1 嵌入式系统发展历程 五个阶段&#xff1a; 一&#xff1a;单片微型计算机 (SCM) 阶段&#xff0c;即单片机时代。…

小猿口算自动PK脚本

大家好&#xff0c;我是小黄。 近期&#xff0c;众多大学生炸鱼小猿口算APP,把一众小学生都快虐哭了&#xff0c;小黄听闻后&#xff0c;也跃跃欲试。对此小黄也参考网上的资料写了一个自动Pk的脚步。 首先大家需要安装一个pytorch环境过程中&#xff0c;如果小伙伴对此不熟悉的…

C语言-输入输出

实验一&#xff1a;编写一个输出两行自定义字符的 C 程序 一、实验目的 熟悉 C 语言的基本结构和语法。掌握 printf() 函数的使用方法。了解在 Code::Blocks 中编写、编译和运行程序的过程。 二、实验内容 编写一个 C 程序&#xff0c;要求输出两行字符&#xff0c;内容自定…

软考《信息系统运行管理员》- 4.3 信息系统软件运维的过程

4.3 信息系统软件运维的过程 文章目录 4.3 信息系统软件运维的过程日常运维日常运维的内容日常运行例行测试维护例行测试流程的关键点例行维护流程的关键点 定期测试维护 缺陷诊断与修复信息系统软件缺陷的概念信息系统软件缺陷的分类信息系统软件缺陷诊断与修复流程缺陷诊断与…

springboot kafka多数据源,通过配置动态加载发送者和消费者

前言 最近做项目&#xff0c;需要支持kafka多数据源&#xff0c;实际上我们也可以通过代码固定写死多套kafka集群逻辑&#xff0c;但是如果需要不修改代码扩展呢&#xff0c;因为kafka本身不处理额外逻辑&#xff0c;只是起到削峰&#xff0c;和数据的传递&#xff0c;那么就需…

Koa学习

Koa 安装与配置 1. 初始化项目 在终端中执行以下命令&#xff1a; # 创建项目文件夹 mkdir koa cd koa# 初始化并安装依赖 npm init -y npm install koa npm install nodemon --save-dev2. 修改 package.json 在 package.json 文件中进行如下修改&#xff1a; {"type…

llava论文阅读

论文名称是 Visual Instruction Tuning 视觉指令微调 摘要 我们首次尝试仅使用语言模型GPT-4来生成多模态的语言-图像指令跟随数据。 通过在生成的数据上进行指令微调&#xff0c;我们引入了LLaVA&#xff08;Large Language and Vision Assistant&#xff09;&#xff1a;一…

c++基础知识复习(1)

前期知识准备 1 构造函数 &#xff08;1&#xff09;默认构造函数&#xff1a;没有参数传入&#xff0c;也没有在类里面声明 &#xff08;2&#xff09;手动定义默认构造函数&#xff1a;没有参数传入&#xff0c;但是在类里面进行了声明 可以在类外实现或者类内实现 以下案…

【Windows】 C++实现 Socket 通讯

【Windows】 C实现 Socket 通讯 一&#xff1a;头文件与套接字实例 &#xff08;1&#xff09;Windows 系统下所需头文件 &#xff1a; #include<WinSock2.h>  &#xff08;2&#xff09;我们使用 SOCKET 来作为套接字的实例&#xff1a;通过查看源码得知其是一个无符号…

计算机网络803-(4)网络层

目录 1.虚电路服务 虚电路是逻辑连接 2.数据报服务 3.虚电路服务与数据报服务的对比 二.虚拟互连网络-IP网 1.网络通信问题 2.中间设备 3.网络互连使用路由器 三.分类的 IP 地址 1. IP 地址及其表示方法 2.IP 地址的编址方法 3.分类 IP 地址 &#xff08;1&#x…

LabVIEW中的非阻塞定时器

在LabVIEW编程中&#xff0c;通常需要在某些任务执行过程中进行非阻塞的延时操作。例如&#xff0c;显示某条信息一段时间&#xff0c;同时继续执行其他任务&#xff0c;并在延时时间结束后停止显示该信息。这类需求通常用于处理优先级不同的信息显示&#xff0c;如错误信息需要…

【Arduino IDE安装】Arduino IDE的简介和安装详情

目录 &#x1f31e;1. Arduino IDE概述 &#x1f31e;2. Arduino IDE安装详情 &#x1f30d;2.1 获取安装包 &#x1f30d;2.2 安装详情 &#x1f30d;2.3 配置中文 &#x1f30d;2.4 其他配置 &#x1f31e;1. Arduino IDE概述 Arduino IDE&#xff08;Integrated Deve…