Pake 是使用 Rust 与 Tauri 的开源网页桌面化工具,可把在线网址、本地 HTML 或静态目录打包成 macOS、Windows 和 Linux 应用。它适合已经有可用网页、想增加独立窗口、图标和桌面操作的人,也提供 CLI 与 GitHub Actions 构建路径。

输入内容不同,离线与路由条件也不同
| 输入 | Pake 的处理 | 需要先确认 |
|---|---|---|
| 在线网址 | 用系统 WebView 加载目标站点 | 登录、网络与站点兼容性,打包后不会自动离线 |
| 单个 HTML 文件 | 包装本地页面 | 同目录资源需要时用 –use-local-file 递归复制 |
| 包含 index.html 的静态目录 | 包装已有构建输出,例如 dist | 本地 hash 路由可用,history-mode SPA 路由尚不支持 |
独立窗口改变的是打开和使用网页的方式,不会替网页增加数据库、服务器接口或浏览器扩展。一个本地页面如果仍调用远程 API,也不能因为资源被打进安装包就认定可以全程离线。
本地反复构建,还是交给在线工作流
本地 CLI:保留参数,方便重做
CLI 文档推荐 Node.js 22+,本地构建需要 Rust 1.85+ 与所用平台的 Tauri 依赖。macOS/Linux 还涉及 curl、wget、file 和 tar,Windows 则需对应编译工具链。第一次构建会准备环境,耗时不能只按后续打包估计。
npm install -g pake-cli
pake https://example.com --name Example --width 1200 --height 800
示例网址要换成实际目标。没有指定图标时,Pake 会尝试取得网站图标;输出默认放在当前工作目录。反复构建同一个应用,可以使用 --config app.json 保存声明式参数,自动化则用 --json 取得机器可读结果。
GitHub Actions:不用在本机配完整构建环境
在线构建按仓库工作流填写网址、名称、图标和目标平台,由 GitHub 执行并提供构建产物。它减少本地准备工作,但输入与日志进入工作流范围。带私密参数的 URL、内部系统地址和凭据不应作为公开构建输入。
两条路径最终都需要检查目标应用。在线构建成功说明包已生成,不证明网站的登录、下载、快捷键和跳转都能按预期工作。

桌面感来自几处具体选择
- 窗口外观:
--width、--height、最小尺寸和缩放决定内容可读性。--hide-title-bar只用于 macOS,Windows/Linux 的无边框入口是--hide-window-decorations。 - 托盘与关闭:
--show-system-tray、--start-to-tray与--hide-on-close控制常驻方式。需要退出应用时,要分清关闭窗口和结束进程。 - 页面跳转:
--safe-domain和--internal-url-regex可控制哪些域名或路径留在应用内,适合处理多域登录回调。强制所有链接内开则可能改变外部网页的打开习惯。 - 页面能力:摄像头、麦克风、拖放和代理按网站实际需要启用;包装一个阅读页面,不必把全部权限打开。
可以按这几组用途核对参数:先看网页是否可用,再决定窗口、导航与系统集成。尤其是 SSO 回调和站外链接,应测试完整流程,不能只检查首页。
跨平台输出,要看包格式和工具链
macOS 默认生成 DMG,也可用 --targets app 生成便于测试的 .app;--targets universal 对应 Intel 与 Apple Silicon 通用包。Windows 可选 x64 或 arm64,Linux 有 deb、rpm、AppImage 等格式,但跨架构仍需相应依赖。
当前 Windows CLI 还提供 --windows-toolchain gnu,适用于已有 MinGW/MSYS2 而没有 MSVC 构建工具的环境,只支持 x64。GNU 路线的裸程序还需要 WebView2Loader.dll 放在旁边,分发时不能只复制 exe。默认 MSVC 路线与它不是相同依赖。
项目 README 的“小于 10M”和与 Electron 的体积比较是项目宣传口径,不是本文基准。系统 WebView 减少了随包携带完整浏览器运行时的路径,实际体积与运行开销仍受平台、网页和资源影响。
程序许可与网站授权,分别确认
Pake 自身采用 GPLv3,LICENSE-EXCEPTION 为标准构建流程生成的目标应用提供 Output Exception:其中的 Pake 部分不会仅因被包含,就让整个输出应用自动受 GPLv3 约束。修改和分发 Pake 本身不在这一豁免范围。
包装的网页、名称、图标和其他内容还有各自授权。--incognito 限制本地浏览状态持久化,不会让网站停止收到请求;忽略证书错误也会降低 TLS 校验,不能作为正常公开站点的默认设置。
修改网页壳和系统行为时可查看 src-tauri/ 与 CLI 文档;只调整窗口和目标网址时,先使用已有参数。记录 Pake 版本、构建系统、架构和配置,后续才能重复生成并判断升级变化。
- 项目仓库:
https://github.com/tw93/Pake - CLI 参数与平台条件:
https://github.com/tw93/Pake/blob/main/docs/cli-usage.md - 在线构建:
https://github.com/tw93/Pake/blob/main/docs/github-actions-usage.md - 输出许可例外:
https://github.com/tw93/Pake/blob/main/LICENSE-EXCEPTION














暂无评论内容