Vue3 + Vite + Electron + Ts 项目快速创建

一、创建 Vue 项目

1. 创建项目

pnpm create vite

2. 安装依赖

cd excel-electron
pnpm install

3. 运行项目

pnpm dev

二、添加 Electron

1. 安装 electron

pnpm add electron -D

2. 修改 package.json

添加入口 js 和执行命令。

{"main": "dist-electron/index.js","scripts": {"start": "electron ."}}

3. 添加主进程文件

dist-electron/index.js 创建窗口。为什么不是 ts 呢,因为 electron 不支持 ts。

import { app, BrowserWindow } from "electron";const createWindow = () => {const win = new BrowserWindow({webPreferences: {contextIsolation: false, // 是否开启隔离上下文nodeIntegration: true, // 渲染进程使用Node APIpreload: "./preload.js", // 需要引用js文件},});let url = "http://localhost:5173"; // 本地启动的vue项目路径。注意:vite版本3以上使用的端口5173;版本2用的是3000win.loadURL(url);win.webContents.openDevTools();};app.whenReady().then(() => {createWindow(); // 创建窗口});

4. 添加预加载脚本文件

dist-electron/preload.js 在渲染进程调用主进程 API。

import os from "os";console.log("platform", os.platform());

5. 运行 electron 命令

pnpm start

三、Vue 集成 Electron

1. 安装依赖

集成 Vite 和 Electron,方便后续在渲染进程中使用 Node API 或 Electron API

pnpm add vite-plugin-electron -D
pnpm add vite-plugin-electron-renderer -D

2. 编辑 vite.config.ts

import { defineConfig } from "vite";import vue from "@vitejs/plugin-vue";import electron from "vite-plugin-electron";import electronRenderer from "vite-plugin-electron-renderer";export default defineConfig({plugins: [vue(),electron([{entry: "electron/index.ts",},{entry: "electron/preload.ts",},]),electronRenderer(),],build: {emptyOutDir: false,outDir: "dist-electron",},});

3. 编辑 package.json

{"name": "excel-electron","private": true,"version": "0.0.0","main": "dist-electron/index.js","scripts": {"dev": "vite","start": "electron .","build": "vue-tsc -b && vite build","preview": "vite preview"},"dependencies": {"vue": "^3.5.13"},"devDependencies": {"@types/node": "^22.10.2","@vitejs/plugin-vue": "^5.2.1","@vue/tsconfig": "^0.7.0","electron": "^33.2.1","typescript": "~5.6.2","vite": "^6.0.5","vite-plugin-electron": "^0.29.0","vite-plugin-electron-renderer": "^0.14.6","vue-tsc": "^2.2.0"}}

4. 运行命令

pnpm dev

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

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

相关文章

pytest+allure 入门

使用allure如何生成自动化测试报​​​​​​告 ?一文详解allure的使用 。_allure测试报告-CSDN博客 例子: import allure import pytest import osallure.epic("闹钟") allure.feature("闹钟增删") class TestSchedule():def setu…

新活动平台建设历程与架构演进

01 前言 历时近两年的重新设计和迭代重构,用户技术中心的新活动平台建设bilibili活动中台终于落地完成!并迎来了里程碑时刻 —— 接过新老迭代的历史交接棒,从内到外、从开发到搭建实现全面升级,开启了活动生产工业化新时代&#…

文生图模型的技术原理、训练方案与微调方案

文生图模型的技术原理、训练方案与微调方案 引言 文生图(Text-to-Image)模型是一类能够根据文本描述生成对应图像的深度学习模型。近年来,随着生成对抗网络(GANs)和扩散模型(Diffusion Models)等技术的进步,文生图模型在图像生成领域取得了显著的进展。本文将详细介绍…

从CentOS到龙蜥:企业级Linux迁移实践记录(系统安装)

引言: 随着CentOS项目宣布停止维护CentOS 8并转向CentOS Stream,许多企业和组织面临着寻找可靠替代方案的挑战。在这个背景下,龙蜥操作系统(OpenAnolis)作为一个稳定、高性能且完全兼容的企业级Linux发行版&#xff0…

MR实战:IP地址去重

文章目录 1. 实战概述2. 提出任务2.1 原始问题2.2 简单化处理 3. 准备数据3.1 在云主机上创建文本文件3.2 上传文件到HDFS指定目录 4. 实现步骤4.1 创建Maven项目4.2 添加相关依赖4.3 创建日志属性文件4.4 创建网址去重映射器类4.5 创建网址去重归并器类4.6 创建网址去重驱动器…

STM32的存储结构

STM32F103 芯片是基于 ARM Cortex-M3 内核的微控制器,它集成了多种类型的存储器,每种存储器都有其特定的作用和存储对象。以下是关于 STM32F103 中 Flash、ROM 和 SRAM 的详细介绍: 1. Flash Memory (闪存) 作用:Flash 是非易失性…

AnaConda下载PyTorch慢的解决办法

使用Conda下载比较慢,改为pip下载 复制下载链接到迅雷下载 激活虚拟环境,安装whl,即可安装成功 pip install D:\openai.wiki\ChatGLM2-6B\torch-2.4.1cu121-cp38-cp38-win_amd64.whl

C++语言的文件操作

C语言的文件操作 在现代计算机程序设计中,文件操作是必不可少的一部分。无论是处理用户输入,数据存储,还是实现持久化,掌握文件操作都至关重要。本文将深入探讨C语言中的文件操作,包括文件的打开、关闭、读写、追加、…

3D目标检测数据集——kitti数据集

KITTI官网网址:The KITTI Vision Benchmark Suite 下载数据集:The KITTI Vision Benchmark Suite KITTI数据集论文:CMSY9 github可视化代码:GitHub - kuixu/kitti_object_vis: KITTI Object Visualization (Birdview, Volumetric LiDar point cloud )

Photoshop PS批处理操作教程(批量修改图片尺寸、参数等)

前言 ‌Photoshop批处理的主要作用‌是通过自动化处理一系列相似的操作来同时应用于多张图片,从而节省时间和精力,提高工作效率。批处理功能特别适用于需要批量处理的任务,如图像尺寸调整、颜色校正、水印添加等‌。 操作步骤 1.创建动作 …

Web渗透测试之XSS跨站脚本 防御[WAF]绕过手法

目录 XSS防御绕过汇总 参考这篇文章绕过 XSS payload XSS防御绕过汇总 服务端知道有网络攻击或者xss攻 Html 通过js代码 标签属性等手段进行一个过滤 不允许出现css的payload 前端过滤 我可以在抓包工具里面修改 抓包工具是不受前端的防御 也 就是浏览器 服务端过滤…

git提交

基本流程:新建分支 → 分支上开发(写代码) → 提交 → 合并到主分支 拉取最新代码因为当前在 master 分支下,你必须拉取最新代码,保证当前代码与线上同步(最新),执行以下命令:bashgit pull orig…

adb端口转发

adb server 运行在 PC 端,监听 localhost:5037 端口的实现原理涉及 Socket 编程、进程管理、消息处理机制 以及 客户端-服务器架构(Client-Server Architecture)。其核心机制如下: 1. ADB 的三大核心组件 adb 采用 C/S 架构&…

Spring Boot 框架下的过滤器

1. 过滤器的基础概念 1.1 什么是过滤器? Servlet 规范的一部分,定义在 javax.servlet.Filter 接口中。在 HTTP 请求到达目标资源(如 Controller)之前或响应返回客户端之前,拦截并对其进行预处理或后处理。 1.2 过滤…

多云架构,JuiceFS 如何实现一致性与低延迟的数据分发

随着大模型的普及,GPU 算力成为稀缺资源,单一数据中心或云区域的 GPU 资源常常难以满足用户的全面需求。同时,跨地域团队的协作需求也推动了企业在不同云平台之间调度数据和计算任务。多云架构正逐渐成为一种趋势,然而该架构下的数…

【Git原理和使用】Git 分支管理(创建、切换、合并、删除、bug分支)

一、理解分支 我们可以把分支理解为一个分身,这个分身是与我们的主身是相互独立的,比如我们的主身在这个月学C,而分身在这个月学java,在一个月以后我们让分身与主身融合,这样主身在一个月内既学会了C,也学…

静态路由配置与调试——计算机网络实训day1

文章目录 操作前准备一、实验目的二、实验要求三、实验过程1、在R1和R2上配置设备名称。基本配置设备命名 2、在R1和R2上配置接口IP地址,并查看IP地址的配置情况。3、在R1和R2上配置静态路由,并查看路由表。静态路由缺省路由(默认路由&#x…

农产品直播带货方案拆解

作为一名经验丰富的营销策划人道叔,今天我来拆解一下咱们4A营销广告圈的这份《直播天府川农好物带货方案》,让你能学到很多实用的策略和技巧,直接应用到你的策划工作中去。 首先,咱们看看背景分析。 助农直播现在可是个大热门&a…

【Qt】控件概述和QWidget核心属性1(enabled、geometry、windowTitle、windowIcon、QRC机制)

一、控件概念 界面上各种元素、各种部分的统称(如按钮、输入框、下拉框、单选复选框...) Qt作为GUI开发框架,内置了各种的常用控件,并支持自定义控件。 二、控件体系发展 1.没有完全的控件,需要使用绘图API手动绘制…

怎么理解编码器与解码器?

编码器和解码器是在信息处理、通信、多媒体等众多领域中广泛应用的两个概念,它们的作用相反但又紧密相关。下面从多个角度来帮助你理解这两个概念: 定义 编码器:编码器是一种将输入信息(如模拟信号、文本、图像、声音等&#xf…