压缩专家
43.99M · 2026-04-01
你的 Electron 应用启动要 5 秒?内存占用 400MB?
而用 NW.js v0.109.1(2026 年 3 月 21 日发布的最新稳定版),相同功能应用启动仅需 1.6 秒,内存占用仅 120MB——而且直接访问 Node.js API,无需 IPC 通信,代码更简洁。
如果你厌倦了:
ipcRenderer 通信那么,NW.js v0.109.1 的发布,可能正在悄悄夺回桌面开发的王座。
Electron 仍是桌面应用主流,但代价日益凸显:
NW.js v0.109.1 是当前最新稳定版(2026 年 3 月 21 日发布),基于 Chromium 146 + Node.js v25.6.1 :
| 能力 | Electron 33 | NW.js v0.109.1 |
|---|---|---|
| 启动时间(简单应用) | 4.2–5.8 秒 | 1.4–1.9 秒 |
| 内存占用(空应用) | 320–450 MB | 90–130 MB |
| 最终打包体积 | 120–180 MB | 45–70 MB |
| Node.js 访问方式 | 需 IPC 通信 | 直接 require() |
| 多窗口管理 | 复杂(BrowserWindow) | 原生 <webview> 或 window.open() |
| 安全模型 | 默认开启(限制多) | 可配置(开发更灵活) |
核心优势:
require('fs') 在 <script> 直接可用)send/on 回调地狱<!-- NW.js 直接可用 Node.js -->
<script>
const fs = require('fs'); // 无需 preload
document.getElementById('btn').onclick = () => {
fs.readFile('/data.json', 'utf8', (err, data) => {
console.log(data);
});
};
</script>
my-app/
├── index.html # 仅需此文件
└── package.json # 10 行配置
{
"name": "my-app",
"main": "index.html",
"window": {
"width": 800,
"height": 600
}
}
npx nw . # 无需主进程脚本
| 指标 | Electron 33 | NW.js v0.109.1 |
|---|---|---|
| 项目初始化时间 | 3 分钟(含 IPC 配置) | 30 秒(仅 HTML + package.json) |
| 冷启动时间 | 4.7 秒 | 1.6 秒(快 3 倍) |
| 内存峰值 | 385 MB | 118 MB(省 70%) |
| 打包体积(macOS) | 142 MB | 58 MB |
| 代码行数(核心逻辑) | 42 行(IPC 通信) | 12 行(直接调用) |
# 1. 创建项目
mkdir my-nw-app && cd my-nw-app
# 2. 创建 package.json
echo '{
"name": "hello-nw",
"main": "index.html"
}' > package.json
# 3. 创建 index.html(见下文)
# 4. 安装 NW.js CLI
npm install -g nw
# 5. 运行!
nw .
index.html 示例:
<!DOCTYPE html>
<html>
<head>
<title>NW.js Demo</title>
</head>
<body>
<button id="readFile">读取本地文件</button>
<script>
// 直接使用 Node.js!
document.getElementById('readFile').onclick = () => {
const fs = require('fs');
const data = fs.readFileSync('/etc/hosts', 'utf8');
alert(data.substring(0, 100));
};
</script>
</body>
</html>
| 项目 | 说明 |
|---|---|
| Adobe Brackets | 经典开源编辑器(2012-2021),已归档但仍具参考价值 |
| Intel XDK | Intel 的跨平台开发工具(已停止维护) |
| 各类企业内部工具 | 因轻量、易维护被部分团队采用 |
NW.js v0.109.1 的回归,不是"怀旧",而是对开发本质的回归:
为什么我们要为"读一个文件"写 10 行 IPC 代码?为什么工具不能像写网页一样自然?
你愿意用 NW.js v0.109.1 重构一个 Electron 项目吗?评论区投票!
各位互联网搭子,要是这篇文章成功引起了你的注意,别犹豫,关注、点赞、评论、分享走一波,让我们把这份默契延续下去,一起在知识的海洋里乘风破浪!