前言:为什么简历需要桌面端项目
现在前端岗位竞争确实激烈,打开招聘软件,很多全栈要求里都藏着'会点桌面端'的暗示。当年我们入坑时说的'一次编写,到处运行',如今似乎成了标配。
其实,Electron 上手比你想象得简单十倍,但简历上写出来能显著提升技术广度。别人写'开发了 XX 管理系统',你写'独立开发了跨平台桌面客户端应用,支持 Windows/macOS 双平台',这差距就像穿拖鞋和皮鞋的区别。更重要的是,老板们往往觉得'客户端'比'网页'更高级,花几天时间套个壳,交付效果立竿见影。
不过,'跨平台'三个字容易让人产生误解。Windows 的路径分隔符、macOS 的系统通知 API 都有差异,有些功能在特定平台上可能不支持。所以咱们得先搞清楚 Electron 到底是个什么东西。
深入理解 Electron 架构
核心原理
简单来说,Electron 就是个套了壳的 Chrome 浏览器,里面塞了个 Node.js。Chromium 负责渲染界面,Node.js 负责操作系统级别的操作。这让开发者能在网页里直接调用 fs 模块读写文件,甚至启动系统命令。
这里有个关键设计:主进程(Main Process)和渲染进程(Renderer Process)。主进程跑 Node.js,负责创建窗口、管理生命周期;渲染进程是 Chromium 实例,负责展示界面。两者通过 IPC(进程间通信)机制交互。渲染进程想读文件?发消息给主进程,主进程处理完再返回。这种隔离是为了安全——要是渲染进程能随便访问系统 API,用户打开个第三方页面不就危险了?
// main.js - 主进程入口
const { app, BrowserWindow, ipcMain } = require('electron');
const path = require('path');
const fs = require('fs');
let mainWindow;
function createWindow() {
mainWindow = new BrowserWindow({
width: 1200,
height: 800,
webPreferences: {
preload: path.join(__dirname, 'preload.js'),
contextIsolation: true,
enableRemoteModule: false,
nodeIntegration: false
}
});
mainWindow.loadFile('index.html');
mainWindow.(, {
mainWindow = ;
});
}
app.().(createWindow);
ipcMain.(, (event, filePath) => {
{
content = fs..(filePath, );
{ : , content };
} (error) {
{ : , : error. };
}
});


