文章首發(fā)于/公/眾/號(hào):阿拉平平
事情是這樣的,最近我搭建了些自托管的工具,其中不乏一些會(huì)高頻使用的。對(duì)于常用的工具,我其實(shí)更習(xí)慣用客戶端去打開(kāi),那有沒(méi)有什么工具能夠?qū)⒕W(wǎng)頁(yè)快速打包成桌面應(yīng)用呢?
1. 項(xiàng)目介紹
Pake[1] 是一個(gè)基于 Rust 和 Tauri 開(kāi)發(fā)的開(kāi)源工具,可以將網(wǎng)頁(yè)打包成輕量級(jí)桌面應(yīng)用,支持 macOS、Windows 和 Linux。
2. 下載安裝
Pake 的安裝稍微有些復(fù)雜(下面會(huì)介紹)。如果你沒(méi)什么特殊需求的話,推薦直接使用 GitHub Actions,具體的方法可以參考官方文檔[2]。
這里介紹下 Windows 11 上 CLI 工具的安裝方法。以 3.4.3 版本的 CLI 為例,需要滿足以下前置條件:
- Node.js:版本 ≥ 22(例如 22.11.0)
- Rust ≥1.78.0(如缺失將自動(dòng)安裝)
- Windows 10 SDK (10.0.19041.0) 和 Visual Studio Build Tools 2022 (≥17.2)
Node.js 和 Rust 根據(jù)提示安裝即可。需要注意的是,在安裝 Visual Studio Build Tools 時(shí),這里要勾選「使用 C++ 的桌面開(kāi)發(fā)」:

前置工作都完成后,運(yùn)行以下命令安裝 Pake:
npm install -g pake-cli
安裝好后,查看下 pake 的版本:
pake --version
3.4.3
3. 使用說(shuō)明
使用示例:
# 基礎(chǔ)用法 - 自動(dòng)獲取網(wǎng)站圖標(biāo)
pake https://github.com --name GitHub
# 高級(jí)用法:自定義選項(xiàng)
pake https://weekly.tw93.fun --name Weekly --icon https://cdn.tw93.fun/pake/weekly.icns --width 1200 --height 800 --hide-title-bar
用法如下:
pake [url] [options]
其中 url 是必填項(xiàng),常用的選項(xiàng)有:
| 選項(xiàng) | 描述 | 示例 |
|---|---|---|
| --name | 應(yīng)用程序名稱 | --name "Weekly" |
| --icon | 自定義圖標(biāo)(可選,自動(dòng)獲取網(wǎng)站圖標(biāo)) | --icon https://cdn.tw93.fun/pake/weekly.icns |
| --width | 窗口寬度(默認(rèn):1200px) | --width 1400 |
| --height | 窗口高度(默認(rèn):780px) | --height 900 |
| --hide-title-bar | 沉浸式標(biāo)題欄(僅macOS) | --hide-title-bar |
| --debug | 啟用開(kāi)發(fā)者工具 | --debug |
我用 Pake 打包了幾個(gè)之前搭建的自托管工具,讓我們看看效果如何。
3.1 Pake x ezBookkeeping
ezBookkeeping 是一個(gè)自托管的個(gè)人記賬應(yīng)用,是我日常都會(huì)使用的工具。所以先拿它試下水,運(yùn)行效果如下:

看起來(lái)還不錯(cuò),我簡(jiǎn)單測(cè)了下,添加、刪除交易記錄都沒(méi)有問(wèn)題。
3.2 Pake x Arya
Arya 是一個(gè)在線 Markdown 編輯器。我也用 Pake 打了個(gè)包,測(cè)試下來(lái)效果也不錯(cuò):

文本的書(shū)寫(xiě)、編輯、圖表的渲染以及 PPT 預(yù)覽功能都可以正常使用。
3.3 Pake x ConvertX
ConvertX 是一個(gè)很強(qiáng)大的文件格式轉(zhuǎn)換工具 ,如果能做成桌面應(yīng)用,平時(shí)使用還是挺方便的。但是實(shí)測(cè)發(fā)現(xiàn),部分功能無(wú)法使用:

我看了下,文件的上傳和轉(zhuǎn)換沒(méi)問(wèn)題,但最重要的預(yù)覽和下載用不了,那這個(gè)客戶端就有點(diǎn)雞肋了。
4. 寫(xiě)在最后
本文介紹了 Pake CLI 的安裝和使用方法。通過(guò)簡(jiǎn)單的命令,就可以將網(wǎng)頁(yè)快速打包成輕量級(jí)的桌面應(yīng)用。相較于傳統(tǒng)的 Electron 打包,Pake 打好的包體積要小將近 20 倍,大小在 5M 左右。
但實(shí)測(cè)也發(fā)現(xiàn),用 Pake 打包后的應(yīng)用可能會(huì)有不符合預(yù)期的情況,比如點(diǎn)擊預(yù)覽/下載按鈕無(wú)反應(yīng)、點(diǎn)擊鏈接后跳轉(zhuǎn)到新的網(wǎng)頁(yè)等等。后來(lái)我查了下 Issues,有提及很多問(wèn)題可以通過(guò)注入 js 腳本來(lái)解決,但這無(wú)疑對(duì)用戶的開(kāi)發(fā)能力提出了要求。
References
[1] Pake:https://github.com/tw93/Pake
[2] 官方文檔:http://github.com/tw93/Pake/blob/main/docs/github-actions-usage_CN.md