基于vue3+ts+electron搭建桌面端开发框架


之前一直使用qt做桌面版工具开发,但是界面美化一直是个麻烦的事情,想像前端那样有各种各样的框架可以使用,而electron插件在我的认知里是最好的选择,参考网上别人的教程,和ts一起配置时总会有各种坑,现在把我的搭建记录分享一下,希望大家能少踩坑

创建vue项目

这里默认大家都知道vue是干嘛的哈

vue create myvue
选择手动配置

请添加图片描述
这里如果是第一次创建项目的话,可以选择手动,然后创建完后可以保存下来,就如大家看到的第一个Rcoon一样,这个是我自己经常用的配置,所以就保存下来了
选择手动配置后,会有下面这些选项供你选择,按空格键就可以选择

请添加图片描述
说明

  1. Babel 转码器,可以将ES6代码转为ES5代码,从而在现有环境执行。
  2. TypeScript TypeScript是一个JavaScript(后缀.js)的超集(后缀.ts)包含并扩展了 JavaScript 的语法,需要被编译输出为 JavaScript在浏览器运行,目前较少人再用
  3. Progressive Web App (PWA) Support 渐进式Web应用程序
  4. Router vue-router(vue路由)
  5. Vuex vuex(vue的状态管理模式)
  6. CSS Pre-processors CSS 预处理器(如:less、sass)
  7. Linter / Formatter 代码风格检查和格式化(如:ESlint)
  8. Unit Testing 单元测试(unit tests)
  9. E2E Testing e2e(end to end) 测试

一般我们选择 1,2,4,5,6,7就可以了

配置vue版本

<think>嗯,用户想了解如何使用ElectronVue3和TypeScript开发桌面应用程序。首先,我需要回忆一下这些技术如何整合在一起。Electron是一个用Web技术构建桌面应用的框架Vue3前端框架,TypeScript则提供类型支持。用户可能需要一个从零开始的教程,包括环境搭建、项目配置、集成步骤以及常见问题的解决。 首先,我应该检查是否有现成的模板或工具可以帮助快速创建项目,比如electron-vite或者vue-cli-plugin-electron-builder。然后,步骤可能包括创建Vue3项目,添加Electron和TypeScript支持,处理进程间通信,以及打包应用。 还要注意TypeScript的配置,比如声明文件(.d.ts)来解决类型错误,这在引用[4]中提到过。另外,上下文隔离和预加载脚本也是Electron中的重要概念,需要详细说明。 用户可能还会关心如何优化开发流程,比如热重载和调试技巧。最后,示例代码和项目结构的展示会帮助用户更好地理解。需要确保所有代码片段格式正确,使用$...$和$$...$$的地方符合要求,但看起来这个问题主要涉及代码块,可能不需要太多数学公式。不过,还是要按照系统指令处理任何数学表达式。</think># 使用Electron+Vue3+TypeScript开发桌面应用教程 ## 一、环境准备 1. 安装Node.js(建议v16.x+) 2. 安装Vue CLI: ```bash npm install -g @vue/cli ``` 3. 推荐使用electron-vite脚手架: ```bash npx create-electron-vite@latest ``` ## 二、项目创建(Vue3+TS) ```bash vue create electron-vue3-demo ``` 选择TypeScript特性,推荐配置: ``` ◉ Babel ◉ TypeScript ◉ Vuex ◉ CSS Pre-processors ◉ Linter/Formatter ``` ## 三、集成Electron 1. 添加electron-builder: ```bash vue add electron-builder ``` 2. 安装必要依赖: ```bash npm install electron @types/electron -D ``` ## 四、项目结构 ``` ├── src │ ├── main // 主进程代码 │ │ └── index.ts // 主进程入口 │ ├── renderer // 渲染进程代码 │ │ └── src // Vue3项目代码 │ └── preload // 预加载脚本 ``` ## 五、类型声明配置(关键) 根据引用[4]建议,创建类型声明文件: ```typescript // src/types/global.d.ts export interface IElectronAPI { platform: string; openFile: () => Promise<string>; } declare global { interface Window { electronAPI: IElectronAPI; } } ``` ## 六、进程通信示例 主进程代码: ```typescript // src/main/index.ts import { app, BrowserWindow, ipcMain } from &#39;electron&#39; ipcMain.handle(&#39;get-platform&#39;, () => process.platform) ``` 预加载脚本: ```typescript // src/preload/index.ts contextBridge.exposeInMainWorld(&#39;electronAPI&#39;, { platform: () => ipcRenderer.invoke(&#39;get-platform&#39;) }) ``` Vue组件调用: ```typescript // src/renderer/src/components/Demo.vue import { onMounted } from &#39;vue&#39; onMounted(() => { console.log(window.electronAPI.platform()) }) ``` ## 七、调试与打包 1. 开发模式: ```bash npm run electron:serve ``` 2. 生产打包: ```bash npm run electron:build ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值