【Electron】从零构建你的第一个桌面应用
·
参考文档:Electron官网 | electron-builder
前提:请先安装到node环境。
介绍
Electron 是一个使用 Web 技术(HTML、CSS、JavaScript)构建跨平台桌面应用的框架。本文将带你从零开始,一步步创建一个简单的 Electron 应用,并完成打包。
一、环境准备与项目初始化
1、创建目录
# 创建目录
mkdir my-electron-app
# 切换到对应目录
cd my-electron-app
# 初始化项目(生成 package.json)
npm init
2、配置 npm 镜像
由于 Electron 体积较大,建议配置国内镜像加速下载。在项目根目录创建 .npmrc 文件:
# 在项目根目录创建 .npmrc 文件 .npmrc 文件是 npm 的配置文件
# .npmrc 文件内容
electron_mirror=https://npmmirror.com/mirrors/electron/
strict-ssl=false
registry=https://registry.npmmirror.com/
3、安装 Electron
npm install electron --save-dev
二、核心文件编写
1、package.json(项目配置)
关键字段说明:
- main: 指定应用入口文件为 main.js
- scripts.start: 定义启动命令 npm run start
{
"name": "my-electron-app",
"version": "1.0.0",
"description": "Hello Electron!",
"main": "main.js",
"scripts": {
"start": "electron .",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "J",
"license": "MIT",
"devDependencies": {
"electron": "^41.1.0"
}
}
2、main.js(主进程)
const { app, BrowserWindow } = require('electron/main')
// 创建窗口
const createWindow = () => {
const win = new BrowserWindow({
width: 800,
height: 600
})
// 窗口对应的文件地址,也可以是web页面地址
win.loadFile('index.html')
}
app.whenReady().then(() => {
createWindow()
// macOS: 点击 dock 图标时重新创建窗口
app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) {
createWindow()
}
})
})
// 所有窗口关闭时退出应用(Windows/Linux)
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit()
}
})
3、index.html(渲染进程)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta
http-equiv="Content-Security-Policy"
content="default-src 'self'; script-src 'self'"
/>
<meta
http-equiv="X-Content-Security-Policy"
content="default-src 'self'; script-src 'self'"
/>
<title>Hello from Electron renderer!</title>
</head>
<body>
<h1>Hello from Electron renderer!</h1>
<p>👋</p>
<p id="info"></p>
</body>
</html>
三、运行效果
执行启动命令:
npm run start

运行后,你将看到一个 800x600 的桌面窗口,显示 “Hello from Electron renderer!” 的欢迎页面。
四、应用打包
1、安装打包工具
npm install -d electron-builder
2、更新 package.json 配置
为了提示构建速度,在测试阶段,可以参考以下配置。
1、构建命令添加–dir参数,表示不需要打包安装包程序;
2、关闭执行程序签名校验功能。
添加打包脚本和构建配置:
{
"name": "my-electron-app",
"version": "1.0.0",
"description": "Hello Electron!",
"main": "main.js",
"scripts": {
"start": "electron .",
"dist": "electron-builder --dir",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "J",
"license": "MIT",
"devDependencies": {
"electron": "^41.1.0",
"electron-builder": "^26.8.1"
},
"build": {
"win": {
"signAndEditExecutable": false,
"verifyUpdateCodeSignature": false,
"forceCodeSigning": false
}
}
}
优化说明:
- –dir 参数:仅生成解压目录,不打包成安装包(加快测试构建速度)
- signAndEditExecutable: false:跳过可执行文件签名
- verifyUpdateCodeSignature: false:关闭签名校验
- forceCodeSigning: false:禁用强制代码签名
3、执行构建
npm run dist
构建完成后,可在 dist/win-unpacked 目录找到可执行文件。
五、性能与体积分析
1、目录结构
目录:dist\win-unpacked
dist/
└── win-unpacked/
├── my-electron-app.exe # 主程序
├── resources/
│ └── app/
│ ├── main.js
│ ├── index.html
│ └── package.json
└── ...(依赖库文件)

2、内存占用情况
| 运行状态 | 内存占用 |
|---|---|
| 后台运行 | 约 50-80 MB |
| 窗口激活 | 约 100-150 MB |
| 开启 DevTools | 约 200-300 MB |
后台运行下内存占用
窗口激活的情况下内存占用
打开页面调试工具的情况下
3、文件体积
- 解压后目录:约 200-250 MB(包含 Chromium 内核和 Node.js 运行时)
- 生成安装包:约 50-80 MB(经压缩)

更多推荐


所有评论(0)