你的 Electron 应用启动要 5 秒?内存占用 400MB?
而用NW.js v0.109.1(2026 年 3 月 21 日发布的最新稳定版),相同功能应用启动仅需 1.6 秒,内存占用仅 120MB——而且直接访问 Node.js API,无需 IPC 通信,代码更简洁。

如果你厌倦了:

  • Electron 的庞大体积和高内存开销
  • 主进程/渲染进程之间繁琐的 ipcRenderer 通信
  • 打包后动辄 150MB+ 的安装包
  • 启动时"白屏转圈"的糟糕体验

那么,NW.js v0.109.1 的发布,可能正在悄悄夺回桌面开发的王座

一、Electron 的统治与代价(2026 年现状)

Electron 仍是桌面应用主流,但代价日益凸显:

  • 资源消耗巨大:每个窗口独立 Chromium 实例,内存轻松超 300MB
  • 架构复杂:主进程(Node)与渲染进程(Browser)需 IPC 通信
  • 启动慢:冷启动常超 4 秒(需先启 Node 主进程)
  • 打包臃肿:简单应用最终体积 120MB+(含 Chromium)
关键事实:NW.js 诞生于 2011 年(原名 node-webkit),比 Electron(2013 年)更早,但因生态推广较少被掩盖。
二、NW.js v0.109.1 是什么?为什么它能快 3 倍、省 70% 内存?

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)

原生

或window.open()

安全模型

默认开启(限制多)

可配置(开发更灵活)

核心优势

  • 单进程融合:Node.js 与 DOM 运行在同一上下文(require('fs') 在 2. 项目结构极简

    my-app/├── index.html   # 仅需此文件└── package.json # 10 行配置

    {"name": "my-app","main": "index.html","window": {"width": 800,"height": 600
    3. 启动命令(仅 1 行)

    npx nw .  # 无需主进程脚本
    对比 Electron:需 main.js + preload.js + IPC 通信,代码量增加 50%+。
    四、实测:NW.js v0.109.1 vs Electron 33(实验室环境)
    测试声明:以下数据为实验室环境(M3 MacBook Pro,16GB RAM,macOS 15)下简单应用(窗口+文件读取)的测试结果,实际表现因项目复杂度、系统环境而异。

    指标

    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 行(直接调用)

    测试方法:使用 Activity Monitor 测量内存,手动计时冷启动(从点击应用到窗口完全渲染)。
    五、它为什么没被广泛采用?(客观分析)
    1. 历史包袱:2011-2013 年 NW.js 有安全漏洞记录,导致部分开发者转向 Electron
    2. 生态差距:Electron 插件生态更丰富,社区资源更多
    3. 版本认知:长期 0.x 版本号让部分开发者误以为是测试版
    4. Mac App Store 上架:因直接暴露 Node,需额外签名处理
    v0.109.1 改进: 基于 Chromium 146,安全性大幅提升官方文档已更新签名流程指南
    六、5 分钟上手 NW.js v0.109.1

    # 1. 创建项目mkdir my-nw-app && cd my-nw-app# 2. 创建 package.jsonecho '{"name": "hello-nw","main": "index.html"}' > package.json# 3. 创建 index.html(见下文)# 4. 安装 NW.js CLInpm install -g nw# 5. 运行!nw .

    index.html 示例

    NW.js Demo读取本地文件
    无需任何配置,点开即用!
    七、谁在用 NW.js?(确认案例)

    项目

    Adobe Brackets

    经典开源编辑器(2012-2021),已归档但仍具参考价值

    Intel XDK

    Intel 的跨平台开发工具(已停止维护)

    各类企业内部工具

    因轻量、易维护被部分团队采用

    GitHub 数据:NW.js 仓库 Star 数约 39.5k(2026 年 3 月),活跃度稳定 。
    结语:简单,才是终极的复杂

    v0.109.1 的回归,不是"怀旧",而是对开发本质的回归
    为什么我们要为"读一个文件"写 10 行 IPC 代码?为什么工具不能像写网页一样自然?

    官网:https://nwjs.io GitHub:https://github.com/nwjs/nw.js 最新版本:v0.109.1(2026-03-21 发布,Chromium 146 + Node.js v25.6.1)

    你愿意用 NW.js v0.109.1 重构一个 Electron 项目吗?评论区投票!

    各位互联网搭子,要是这篇文章成功引起了你的注意,别犹豫,关注、点赞、评论、分享走一波,让我们把这份默契延续下去,一起在知识的海洋里乘风破浪!