lw.Web2App 是网页打包工具,把 HTML、Vue、React、Vite 静态项目打成 Windows/Linux 单文件桌面应用,无需 Node 或 Electron。
- v0.2.7
- 发布于
- 2026年9月5日
- 129
- 星标
- 409
- 下载
- 同步于
- 1 天前
最新版本
v0.2.72026年9月5日 09:54下载慢?可在上方随时切换镜像源
项目说明
项目概述
lw.Web2App 把 HTML、Vue、React、Vite 的静态产物变成单个桌面 EXE 或 ELF 应用,全程不需要 Node.js、Rust、.NET,也不往里塞 Electron。它用 C++ 写成,Windows 端复用系统自带的 WebView2 Evergreen Runtime,Linux 端复用 GTK3 与 WebKitGTK 4.1,生成的应用体积小、启动快。Windows 10/11 x64 为稳定版,Ubuntu 22.04/24.04 x86_64 已进入 Linux Beta。
一次打包,网页项目直接变成可分发的单文件原生桌面程序。
| 项目 | 内容 |
|---|---|
| 平台 | Windows 10/11 x64、Ubuntu 22.04/24.04 x86_64 |
| 语言 | C++(MIT 许可证) |
| 输入 | 本地静态目录或 http/https 在线网址 |
| 输出 | 单文件 EXE(Windows)或 ELF(Linux) |
| 运行依赖 | 目标机器无需 Node.js、Rust、.NET 或 Electron |
主要功能
- 双端打包:本地静态目录与在线网址都能打成单文件应用,GUI 与 CLI 双形态
- 图形界面:Windows 双栏布局支持 Per-Monitor V2 高 DPI,应用名、版本号、图标、窗口尺寸可视化设置
- 本地交互:勾选 Native IPC 后,可信页面通过 window.lw.invoke() 调用文件选择、窗口控制、系统托盘等能力,按方法逐项授权
- 后台代理:/lw_proxy/ 前缀把请求同源转发到固定 HTTP 后台,老系统不用改 CORS,还支持断点下载
- SPA 兼容:适配 Vue Router、React Router 的 history 模式,启动页自动扫描排序
- 完整性与签名:资源 ZIP 与 Manifest 联合 SHA-256 校验,Windows 可用证书存储区证书做 Authenticode 签名
- 单实例:Windows 用 Named Mutex、Linux 用 flock,二次启动自动前置已有窗口
工作原理
打包时,工具把资源 ZIP、Manifest JSON 和 80 字节 Footer 依次追加到 Runner 的 PE/ELF 文件尾部,形成自包含的单文件应用。运行时,程序从自身末尾读到 Footer 就切换到应用模式,只索引 ZIP 中央目录、请求时才解压对应文件,热点小资源进 32 MiB LRU 缓存。本地内容由只监听 127.0.0.1 的 HTTP 服务提供,严格校验 Host,拒绝绝对路径、盘符与 .. 等危险条目,降低 ZIP 炸弹风险。
适用人群
- 想把网页项目分发成桌面应用的开发者
- 给内部系统做 EXE 包装的企业 IT
- 不接受 Electron 体积的前端工程师
- 需要把在线系统固定成桌面入口的用户
快速上手
- 从 Releases 下载 lw.Web2App.exe(Windows)或对应 Ubuntu 便携包
- 打开图形界面,左侧选择本地网页目录或在线网址,右侧填应用名称、图标与窗口尺寸
- 需要本地能力时勾选「启用本地交互(Native IPC)」,在权限窗口逐项授权
- 点生成,产物默认输出到打包器目录下的 out/MyWebApp.exe,成功后自动打开资源管理器
- 运行生成的应用,F11 切换全屏、Esc 退出
系统要求
| 项目 | 要求 |
|---|---|
| Windows | 10 1809+ / 11 x64,WebView2 Evergreen Runtime |
| Linux | Ubuntu 22.04 / 24.04 x86_64,GTK3、WebKitGTK 4.1、OpenSSL 3 |
| 源码构建 | 需 Visual Studio 2022 与 CMake 3.22+ |
注意事项
- 平台边界:不支持 Windows 7/8,Linux 不承诺 Debian、Mint、ARM64 或 AppImage
- 数据目录:WebView2 用户数据在 %LOCALAPPDATA%/lw.Web2App/apps/
/,删除后 Cookie 与 localStorage 重置 - 排障入口:白屏先看应用日志 app.log,未生成应用目录再看 launcher.log,日志单文件 2 MiB 保留 5 个
- 代理限制:后台代理仅支持 http:// 目标,暂不支持 WebSocket 与 NTLM/Kerberos
- 在线模式:打包在线网址不保存网站内容,运行时需联网
历史版本
排序