electron
Published on Dec 31, 2024, with 57 view(s) and 0 comment(s)
Ai 摘要:本文介绍了Electron开发中两个常见问题的解决方案:1. **安装依赖失败**:通过修改npm配置,设置国内镜像源(如npmmirror)并关闭SSL验证;2. **打包失败**:需安装Python 2.7环境以支持构建流程。全文提供具体配置代码和简明步骤,帮助开发者快速解决问题。(98字)

什么是 Electron

Electron 是一个由 GitHub 开发的开源框架,用于使用 HTML、CSS 和 JavaScript 构建跨平台桌面应用程序。它结合了 Chromium(浏览器引擎) 和 Node.js(后端运行时),使开发者能够用 Web 技术开发原生桌面应用。

核心特点

✅ 跨平台:支持 Windows、macOS 和 Linux
✅ Web 技术栈:使用前端技术(HTML/CSS/JS)开发
✅ 访问系统 API:通过 Node.js 调用本地文件、网络、硬件等
✅ 丰富的生态:支持 React、Vue、Angular 等现代前端框架

Electron 的优缺点

✅ 优点

  • 开发效率高:Web 技术栈,快速迭代

  • 跨平台兼容:一套代码适配多系统

  • 生态丰富:NPM 百万级模块可用

❌ 缺点

  • 内存占用高:每个窗口运行 Chromium

  • 包体积大:基础应用 100MB+

  • 性能瓶颈:不适合计算密集型任务

核心架构

Electron 采用 主进程(Main Process) 和 渲染进程(Render Process) 的双进程模型:

进程职责示例
主进程管理应用生命周期、窗口、系统 API(如文件访问)app.on('ready') 启动窗口
渲染进程运行前端代码(HTML/CSS/JS),每个窗口独立进程渲染 UI、调用 DOM API
通信方式通过 IPC(进程间通信) 交换数据ipcMain 和 ipcRenderer



为什么选择 Electron?

(1) 跨平台开发成本低

  • 传统方式:Windows(C#)、macOS(Swift)、Linux(GTK/Qt)需分别开发

  • Electron 方式:一套代码,三端运行

(2) 前端开发者友好

  • 无需学习 C++/C#,直接用 JavaScript 开发

  • 可复用 Web 组件(如 React、Vue 组件)

(3) 丰富的 API 支持

  • 系统集成:文件系统、剪贴板、通知、托盘图标

  • 硬件访问:摄像头、蓝牙、打印机

(4) 成熟的商业案例

  • VS Code(微软)

  • Slack(企业通信)

  • Discord(游戏聊天)

  • Figma(设计工具)

难点

  • 调用nodeJs api

// 渲染进程(需启用 nodeIntegration)
const fs = require('fs')
fs.readFile('file.txt', 'utf-8', (err, data) => {
  console.log(data)
})
  • 进程间通信

// 主进程(main.js)
const { ipcMain } = require('electron')
ipcMain.on('msg-from-renderer', (event, arg) => {
  console.log(arg) // 接收渲染进程消息
})

// 渲染进程(index.html)
const { ipcRenderer } = require('electron')
ipcRenderer.send('msg-from-renderer', 'Hello Main Process!')


@electron/remote

 

todo List项目案例(github地址