Web2Executable 是一款开源工具(有 GUI 和命令行),它把你的 Node.js 或任意 HTML/CSS/JS 项目,打包成各平台的可执行文件(Windows exe、mac app、Linux 二进制)。它底层用的是 NW.js(以前叫 node-webkit)和 PySide,支持从一台机器导出三个平台的安装包(注意:导出到 mac 在非 macOS 上可能受限,但工具本身目标是跨平台打包)。
它很像“把浏览器内核+你的网页”直接封装成一个桌面程序 —— 用户双击就能像原生应用一样运行。
Web2Executable 解决了哪些痛点
- • 你不用学习 Electron 的复杂打包流程,也不用手动处理平台差异;
- • 支持把 HTML/JS 游戏或工具直接做成桌面程序,减少“必须联网/必须打开浏览器”的限制;
- • 提供 GUI(适合不熟命令行的人)和命令行(方便自动化构建)两种模式;
- • 可以指定 NW.js 版本,跟项目兼容性好掌控;
- • 自动把图标插入 Windows/Mac 打包结果,省去很多后处理步骤;
- • 支持音视频等媒体,适合 HTML5 游戏和多媒体应用。
安装与启动 —— 最快上手指南
- 1. 到 Releases/仓库下载对应平台的 Web2Executable 二进制(Windows exe、mac app、Ubuntu 二进制)。
- 2. 解压后直接双击运行就行,通常不需要额外依赖。
- 3. 注意:有个少数 Windows 上的报错(side-by-side configuration)可能需要安装 Microsoft Visual C++ 2008/2010 可再发行组件,如果遇到打开失败可以先试试装这个。
- 1. 你需要 Python 3.4+(现代环境用 3.8/3.10 都行),安装 PySide(GUI 依赖)。
- 2. 如果要替换 Windows exe 的图标,建议装 Pillow(PIL 的现代分支)。
- 3. pip install -r requirements.txt;git submodule update --init --recursive;然后 python main.py 启动 GUI。
- 4. 命令行版需要 configobj 等依赖,运行 python command_line.py --help 可见用法(如果用打包好的二进制,把 python 部分替换成 exe 即可)。
- 1. 选择项目文件夹(要求至少有一个 html 文件作为入口);
- 2. 设置程序名、窗口尺寸、icon 等必要字段;
- 3. 选择要导出的平台(Windows/Mac/Linux);
- 5. 完成后点 “Open Export Folder” 查看结果。
- • 命令行示例(自动化打包)python3 command_line.py /path/to/project --main html/index.html --export-to linux-x64 windows mac --width 900 --height 700 --nw-version 0.10.5
优点(很实用的点)
- • 上手快:预编译版几乎零依赖,非开发人员也能用;
- • 支持多平台导出:从一台机器输出多个平台包,方便分发;
- • 适合游戏和多媒体应用:对 Phaser 等 HTML5 游戏库支持不错;
- • GUI + CLI:既适合手动操作,也支持 CI/CD 自动化;
- • 打包体积和启动性能和 Chrome 基本一致,功能接近原生浏览器环境。
缺点与局限(别踩坑)
- • NW.js 依赖:底层是 NW.js,如果你的项目专门依赖 Electron API(或某些特定 Node 模块),可能需要改造或转用 Electron 方案
- • Windows 上有时需要额外的 Visual C++ 运行库;
- • 不是把后端也一起打包:如果你有服务器端逻辑,仍需考虑 API 部署或本地嵌入 Node 服务;
- • 有些现代前端构建链或模块化特性,可能需要先打包成静态文件再导出;
- • 项目已有一段时间未频繁更新(社区项目常见问题),遇到新平台或新 NW.js 特性可能需要动手改代码或提交 issue。
总结Web2Executable 就是那种能让你把“网页”秒变“桌面程序”的小工具,门槛低、体验直观、适合想快速把 HTML5 应用发给用户的开发者或创作者。它不会取代 Electron 或更复杂的打包生态,但作为一个轻量、好用的 NW.js 打包前端工具,绝对值得一试。
项目地址:https://github.com/nwutils/Web2Executable