# electron-study **Repository Path**: ztes/electron-study ## Basic Information - **Project Name**: electron-study - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-06 - **Last Updated**: 2026-01-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Electron从入门到精通 ## 📖 项目介绍 本项目是一套完整的Electron桌面应用开发学习体系,涵盖从基础入门到高级精通的全过程。全书分为四个阶段,系统性地介绍Electron开发知识体系,帮助学习者建立全面的跨平台桌面应用开发技能。 ## 🎯 学习目标 - **第一阶段:快速入门** - 掌握Electron基础知识和核心技能 - **第二阶段:进阶开发** - 深入学习高级Electron技术和最佳实践 - **第三阶段:高级与优化** - 专注于Electron架构设计、性能优化和安全加固 - **第四阶段:数据库实战** - 掌握Electron中的数据库开发技术 ## 📚 内容结构 ### 第一阶段:快速入门 1. [Electron简介与环境搭建](./docs/stage1/introduction.md) - Electron基础知识和开发环境配置 2. [第一个Electron应用](./docs/stage1/first-app.md) - 创建并运行第一个Electron应用 3. [进程模型](./docs/stage1/processes.md) - 主进程和渲染进程详解 4. [窗口管理](./docs/stage1/window-management.md) - 窗口创建、管理和交互 5. [IPC通信](./docs/stage1/ipc-communication.md) - 进程间通信机制 6. [菜单和托盘](./docs/stage1/menu-tray.md) - 应用菜单和系统托盘 7. [对话框和通知](./docs/stage1/dialogs-notifications.md) - 系统对话框和通知 8. [文件系统操作](./docs/stage1/file-system.md) - 文件读写和目录操作 9. [网络请求](./docs/stage1/network-requests.md) - HTTP请求和数据获取 10. [打包和分发](./docs/stage1/packaging.md) - 应用打包和发布 11. [调试技巧](./docs/stage1/debugging.md) - 开发调试和问题排查 12. [常见问题](./docs/stage1/faq.md) - 初学者常见问题解答 ### 第二阶段:进阶开发 1. [进程模型深入](./docs/stage2/process-model.md) - 深入理解Electron进程模型 2. [多窗口管理](./docs/stage2/multi-window.md) - 多窗口应用开发 3. [原生模块开发](./docs/stage2/native-modules.md) - Node.js原生模块集成 4. [自动更新](./docs/stage2/auto-updater.md) - 应用自动更新机制 5. [应用安全](./docs/stage2/security.md) - Electron应用安全最佳实践 6. [性能优化](./docs/stage2/performance.md) - 应用性能优化技巧 7. [内存管理](./docs/stage2/memory-management.md) - 内存泄漏检测和优化 8. [崩溃报告](./docs/stage2/crash-reporting.md) - 崩溃收集和分析 9. [持久化存储](./docs/stage2/storage.md) - 本地数据存储方案 10. [系统集成](./docs/stage2/system-integration.md) - 系统级功能集成 11. [自定义协议](./docs/stage2/custom-protocols.md) - 自定义协议处理 12. [Electron Builder配置](./docs/stage2/electron-builder.md) - 高级打包配置 13. [CI/CD集成](./docs/stage2/ci-cd.md) - 持续集成和部署 14. [测试策略](./docs/stage2/testing.md) - 单元测试和E2E测试 ### 第三阶段:高级与优化 1. [高级架构设计](./docs/stage3/architecture.md) - 大型应用架构设计 2. [最佳实践](./docs/stage3/best-practices.md) - Electron开发最佳实践 3. [插件系统](./docs/stage3/plugin-system.md) - 插件化架构设计 4. [常见问题解决方案](./docs/stage3/solutions.md) - 典型问题解决方案 5. [热更新实现](./docs/stage3/hot-update.md) - 应用热更新技术 6. [离线应用支持](./docs/stage3/offline-support.md) - 离线应用开发 7. [国际化(i18n)](./docs/stage3/i18n.md) - 多语言支持 8. [主题系统](./docs/stage3/theme-system.md) - 主题切换和定制 9. [高级IPC通信](./docs/stage3/advanced-ipc.md) - 复杂场景下的IPC通信 10. [Web Worker使用](./docs/stage3/web-worker.md) - Web Worker在Electron中的应用 11. [性能监控](./docs/stage3/performance-monitoring.md) - 应用性能监控和分析 12. [安全加固](./docs/stage3/security-hardening.md) - 应用安全加固措施 13. [代码签名](./docs/stage3/code-signing.md) - 应用代码签名 14. [应用商店发布](./docs/stage3/app-store.md) - 发布到各大应用商店 ### 第四阶段:数据库实战 1. [章节介绍](./docs/stage4/index.md) - 数据库学习路径和目标 2. [SQLite基础](./docs/stage4/sqlite-basics.md) - SQLite数据库基础知识和SQL语句 3. [better-sqlite3](./docs/stage4/better-sqlite3.md) - Node.js最快的SQLite库 4. [Drizzle ORM](./docs/stage4/drizzle-orm.md) - 现代TypeScript ORM框架 5. [数据库迁移](./docs/stage4/database-migrations.md) - 数据库迁移管理 6. [数据备份与恢复](./docs/stage4/database-backup.md) - 数据备份和恢复方案 7. [性能优化](./docs/stage4/database-performance.md) - 数据库性能优化 8. [常见问题](./docs/stage4/database-faq.md) - 数据库开发常见问题 ## 🚀 快速开始 ### 环境要求 - **Node.js**: >= 16.0.0 - **pnpm**: >= 8.0.0 - **操作系统**: Windows、macOS 或 Linux - **代码编辑器**: VS Code(推荐)或其他现代编辑器 - **Git**: 版本控制工具 ### 安装依赖 ```bash # 克隆项目 git clone https://github.com/your-username/electron-study.git cd electron-study # 安装pnpm(如果未安装) npm install -g pnpm # 安装项目依赖 pnpm install ``` ### 启动文档服务 ```bash # 启动VitePress开发服务器 pnpm dev # 访问文档 # 打开浏览器访问 http://localhost:5173 ``` ### 构建文档 ```bash # 构建生产版本 pnpm build # 预览构建结果 pnpm preview ``` ## 📖 学习路径 ### 初学者路径 1. **环境准备**: 安装Node.js、pnpm和代码编辑器 2. **第一阶段**: 按顺序学习快速入门章节,掌握Electron基础 3. **实践项目**: 完成第一个Electron应用 4. **第二阶段**: 学习进阶开发,深入理解Electron核心概念 5. **项目实战**: 开发一个完整的桌面应用 ### 进阶路径 1. **复习基础**: 快速回顾第一阶段内容 2. **第二阶段**: 深入学习进阶开发技术 3. **第三阶段**: 学习高级架构和优化技术 4. **第四阶段**: 掌握数据库开发 5. **项目优化**: 优化现有项目,提升性能和安全性 ### 专业路径 1. **全阶段学习**: 系统学习所有四个阶段 2. **项目实战**: 开发企业级桌面应用 3. **性能优化**: 深入研究性能优化技术 4. **安全加固**: 学习应用安全最佳实践 5. **发布上线**: 发布应用到各大应用商店 ### 学习建议 - **理论与实践结合**: 每学习一个章节,动手实践示例代码 - **创建项目**: 边学边做,创建自己的Electron项目 - **记录笔记**: 总结关键知识点和遇到的问题 - **查阅文档**: 遇到问题时查阅Electron官方文档 - **参与社区**: 加入Electron社区,交流学习经验 - **定期复习**: 定期回顾已学内容,加深理解 ## 🛠️ 开发环境 ### 推荐工具 - **代码编辑器**: VS Code + Electron相关插件 - **调试工具**: Chrome DevTools、Electron DevTools - **包管理器**: pnpm - **版本控制**: Git - **设计工具**: Figma、Sketch(用于UI设计) ### VS Code插件推荐 ```json { "recommendations": [ "ms-vscode.vscode-typescript-next", "dbaeumer.vscode-eslint", "esbenp.prettier-vscode", "formulahendry.auto-rename-tag", "christian-kohler.path-intellisense", "streetsidesoftware.code-spell-checker" ] } ``` ### 创建第一个Electron应用 ```bash # 创建项目目录 mkdir my-electron-app cd my-electron-app # 初始化项目 pnpm init # 安装Electron pnpm add -D electron # 创建main.js cat > main.js << 'EOF' const { app, BrowserWindow } = require('electron') function createWindow () { const win = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: true, contextIsolation: false } }) win.loadFile('index.html') } app.whenReady().then(createWindow) app.on('window-all-closed', () => { if (process.platform !== 'darwin') { app.quit() } }) app.on('activate', () => { if (BrowserWindow.getAllWindows().length === 0) { createWindow() } }) EOF # 创建index.html cat > index.html << 'EOF' 我的第一个Electron应用

Hello Electron!

这是我的第一个Electron应用

EOF # 更新package.json # 添加 "start": "electron ." # 运行应用 pnpm start ``` ## 📖 学习资源 ### 官方文档 - [Electron官方文档](https://www.electronjs.org/docs/) - [Electron API文档](https://www.electronjs.org/docs/latest/api/) - [Electron Fiddle](https://www.electronjs.org/fiddle) - [Electron Builder](https://www.electron.build/) ### 推荐书籍 - 《Electron实战》 - 《跨平台桌面应用开发》 - 《Node.js实战》 - 《JavaScript高级程序设计》 ### 在线资源 - [Electron官方GitHub](https://github.com/electron/electron) - [Electron社区](https://www.electronjs.org/community) - [Awesome Electron](https://github.com/sindresorhus/awesome-electron) - [Electron中文文档](https://www.electronjs.org/zh/docs/) ### 社区与论坛 - [Electron Discourse](https://discuss.atom.io/c/electron) - [Stack Overflow - Electron](https://stackoverflow.com/questions/tagged/electron) - [Reddit - r/electronjs](https://www.reddit.com/r/electronjs/) - [掘金 - Electron](https://juejin.cn/tag/Electron) ## 🤝 贡献指南 欢迎参与本项目贡献!您可以通过以下方式参与: 1. **内容贡献**: 修正错误、补充内容、添加新章节 2. **代码示例**: 优化示例代码,添加更多实用案例 3. **文档完善**: 完善文档说明,提高可读性 4. **问题反馈**: 报告问题和提出改进建议 ### 贡献流程 1. Fork本项目 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 创建Pull Request ## 📄 许可证 本项目采用 [MIT License](LICENSE) 许可证。 ## 📞 联系方式 如有问题或建议,请通过以下方式联系: - 创建Issue - 发送邮件至 [your-email@example.com] - 加入讨论群组 ## 🙏 致谢 感谢所有为本项目做出贡献的人员和社区。 --- **注意**: 本教程仅供学习和研究目的。在学习过程中,请遵守相关法律法规和开源协议。