# verify-electron **Repository Path**: deepter/verify-electron ## Basic Information - **Project Name**: verify-electron - **Description**: 端应用app - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-25 - **Last Updated**: 2026-05-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 📝 Electron 便签 (Notes Demo) 一个基于 Electron 的本地笔记应用,支持创建、编辑、自动保存和导出笔记。 ## 功能 - **新建笔记** — 点击「+ 新建」创建一篇空白笔记,自动聚焦标题输入 - **编辑笔记** — 标题与正文独立编辑,即时预览更新到侧边栏 - **自动保存** — 输入即保存(500ms 防抖),切换笔记或失焦时立即持久化 - **导出** — 将所有笔记导出为 JSON 文件,通过系统保存对话框选择路径 - **状态栏** — 底部显示当前操作状态(已保存、已加载、导出成功等) ## 打包为 exe 使用 [electron-builder](https://www.electron.build) 将应用打包为 Windows 安装程序或便携版。 ```bash # 安装依赖(首次运行需要) npm install # 生成未压缩的 app 目录(快速验证打包结果) npm run pack # 生成 NSIS 安装包 (exe 安装程序) npm run dist # 生成单文件便携版 (exe 免安装) npm run dist:portable ``` 打包产物在 `release/` 目录下,结构: ``` release/ ├── 便签 Setup 1.0.0.exe # 安装程序 ├── 便签 1.0.0.exe # 便携版 (运行 dist:portable 生成) └── win-unpacked/ # 未压缩的 app 目录 (运行 pack 生成) ``` ### 自定义图标 在项目根目录放一个 `icon.ico`(推荐 256×256),修改 `package.json` 中的 `"build.win.icon"` 为 `"icon.ico"`,重新打包即可。 --- ## 技术栈 - **Electron** ^33.0.0 — 桌面应用框架 - **contextIsolation** + **preload 桥接** — 安全的进程间通信 - **纯原生前端** — 无框架依赖,CSS 自定义布局 ## 快速开始 ```bash # 安装依赖 npm install # 启动应用 npm start ``` ## 项目结构 ``` electron-notes/ ├── main.js # 主进程:窗口管理、IPC、文件读写 ├── preload.js # 预加载脚本:暴露 notesAPI 到渲染进程 ├── index.html # 渲染进程:UI 界面与交互逻辑 ├── package.json # 项目配置与依赖 └── .gitignore # Git 忽略规则 ``` ## 数据存储 笔记以 JSON 格式保存在 Electron 的 `userData` 目录下(`notes.json`)。各平台路径: | 平台 | 路径 | |------|------| | Windows | `%APPDATA%/electron-notes/notes.json` | | macOS | `~/Library/Application Support/electron-notes/notes.json` | | Linux | `~/.config/electron-notes/notes.json` | ## IPC 接口 由 `preload.js` 暴露给渲染进程,通过 `contextBridge` 安全注入: | 方法 | 说明 | |------|------| | `notesAPI.list()` | 读取所有笔记 | | `notesAPI.save(notes)` | 保存笔记列表 | | `notesAPI.export()` | 弹出对话框导出为 JSON 文件 |