Electron + Vue 3 + Node.js 的跨平台桌面应用示例项目

Electron + Vue + Node.js 原生模块学习示例

项目简介

这是一个结合 Electron + Vue 3 + Node.js 的跨平台桌面应用示例项目,用于学习和展示 Node.js 原生模块在 Electron 环境中的使用。

技术栈

  • Electron: ^39.2.7 - 跨平台桌面应用开发框架
  • Vue: ^3.5.24 - 渐进式 JavaScript 框架
  • Vite: ^7.2.4 - 下一代前端构建工具
  • Node.js: >= 20.0.0 (推荐使用 LTS 版本)

环境要求

Node.js 版本

推荐使用 Node.js 20.x LTS 版本,因为 Electron 39 基于 Node.js 20.x 构建。

你可以通过以下命令检查当前 Node.js 版本:

bash 复制代码
node -v

如果需要管理多个 Node.js 版本,推荐使用:

  • nvm (Windows/Linux/macOS)
  • n (macOS/Linux)

项目结构

csharp 复制代码
.
├── electron/              # Electron 主进程代码
│   ├── main.js           # 主进程入口文件
│   └── preload.js        # 预加载脚本
├── src/                  # Vue 渲染进程代码
│   ├── assets/           # 静态资源
│   ├── App.vue           # 根组件
│   ├── main.js           # 渲染进程入口
│   └── style.css         # 全局样式
├── public/               # 静态资源
├── dist-electron/        # Electron 构建产物
├── dist/                 # Vue 构建产物
├── dist-installer/       # 安装包产物
├── electron-builder.json # Electron 构建配置
├── package.json          # 项目依赖和脚本
└── vite.config.js        # Vite 配置

安装依赖

bash 复制代码
npm install

开发模式

启动开发服务器:

bash 复制代码
npm run dev
# 或
npm run electron:dev

这将同时启动 Vite 开发服务器和 Electron 应用。

打包构建

构建生产版本

bash 复制代码
npm run build
# 或
npm run electron:build

打包配置

项目使用 electron-builder 进行打包,配置文件为 electron-builder.json

打包产物
  • Windows : 生成 .exe 安装包和绿色版文件夹
  • macOS : 生成 .dmg 镜像文件
  • Linux : 生成 .deb.rpm 等格式
自定义打包配置

你可以在 electron-builder.json 中修改打包配置,例如:

  • 应用名称
  • 图标
  • 打包格式
  • 依赖项

项目功能

  • 展示 Vue 3 在 Electron 中的基本使用
  • 演示 Node.js 原生模块的调用
  • 提供完整的开发和构建流程
  • 包含预加载脚本示例

常见问题

1. 安装依赖失败

如果安装依赖时遇到网络问题,可以尝试使用淘宝镜像:

bash 复制代码
npm install --registry=https://registry.npmmirror.com

2. 打包失败

  • 确保 Node.js 版本符合要求
  • 检查是否有足够的磁盘空间
  • 查看控制台错误信息

3. 应用启动失败

  • 检查端口是否被占用
  • 查看开发者工具中的错误信息

许可证

MIT License

作者

Developer

项目地址 gitee.com/niehuizhe/e...

相关推荐
鱼樱前端21 小时前
用 AI 做内容变收入
前端·人工智能·ai编程
浮生望1 天前
React + TypeScript 组件设计进阶:从类型约束到无状态组件的三次进化
前端
90后的晨仔1 天前
Mac 开发 uni-app 终极方案:让安卓模拟器彻底脱离 Android Studio 独立运行
前端·vue.js
90后的晨仔1 天前
别再搞混了!uni-app 中 node_modules 和 uni_modules 到底是什么关系?
前端
kyriewen1 天前
面试官问"这段逻辑为什么这样写"——我才发现,这半年我写的代码,我自己都解释不了
前端·javascript·面试
谢小飞1 天前
大文件上传很难?学会这招,GB文件秒传不是梦
前端·node.js
程序员黑豆1 天前
Windows 系统 Java 环境变量配置全攻略:解决“不是内部或外部命令”
java·前端·ai编程
To_OC1 天前
别只拿 useRef 绑 DOM 了,搭配 Web Worker 解决页面卡顿才是真的香
前端·react.js·dom
IT_陈寒1 天前
Vue的响应式让我原地破防,原来问题出在这
前端·人工智能·后端
子兮曰1 天前
Bun vs Node.js 深度对决:跑分快 4 倍,真实业务只剩 3%,2026 年到底该怎么选?
前端·后端·typescript