Pake
很简单的用 Rust 打包网页生成很小的桌面 App,支持 Mac / Windows / Linux 系统,常用包下载、命令行一键打包、定制开发 可见下面文档,也欢迎去 讨论区 交流。
很简单的用 Rust 打包网页生成很小的桌面 App,支持 Mac / Windows / Linux 系统,常用包下载、命令行一键打包、定制开发 可见下面文档,也欢迎去 讨论区 交流。
🏂 小:相比传统的 Electron 套壳打包,要小将近 40 倍,不到 3M 😂 快:Pake 的底层使用的 Rust Tauri 框架,性能体验较 JS 框架要轻快不少,内存小很多 🩴 特:不是单纯打包,实现了快捷键的透传、沉浸式的窗口、拖动、样式改写、去广告、产品的极简风格定制 🐶 玩:只是一个很简单的小玩具,用 Rust 替代之前套壳网页打包的老思路,其实 PWA 也很好
WeRead Mac Linux Windows | Twitter Mac Linux Windows |
YouTube Mac Linux Windows | Reference Mac Linux Windows |
Code Mac Linux Windows | Qwerty Mac Linux Windows |
Flomo Mac Linux Windows | YuQue Mac Linux Windows |
注意:Windows 下不能安装到 C:\Program File
,会直接闪退,建议安装到其他非管理员权限目录,比如 D:\Program Files (x86)
。
Pake 提供了命令行工具,可以更快捷方便地一键自定义打你需要的包,详细可见 文档。
// 使用 npm 进行安装
npm install -g pake-cli
// 命令使用
pake url [options]
// 随便玩玩,首次由于安装环境会有些慢,后面就快了
pake https://weekly.tw93.fun --name Weekly --transparent
Mac | Windows/Linux | 功能 |
---|---|---|
⌘ + [ | Ctrl + ← | 返回上一个页面 |
⌘ + ] | Ctrl + → | 去下一个页面 |
⌘ + ↑ | Ctrl + ↑ | 自动滚动到页面顶部 |
⌘ + ↓ | Ctrl + ↓ | 自动滚动到页面底部 |
⌘ + r | Ctrl + r | 刷新页面 |
⌘ + w | Ctrl + w | 隐藏窗口,非退出 |
⌘ + - | Ctrl + - | 缩小页面 |
⌘ + + | Ctrl + + | 放大页面 |
⌘ + = | Ctrl + = | 放大页面 |
⌘ + 0 | Ctrl + 0 | 重置页面缩放 |
此外还支持双击头部进行全屏切换,拖拽头部进行移动窗口,还有其他需求,欢迎提过来。
开始前参考 Tauri 快速配置好环境。
// 安装依赖
npm i
// 调试
npm run dev
// 打包 Mac 应用
npm run build
// 打包 Windows 应用
npm run build:windows
// 打包 Linux 应用
npm run build:linux
src-tauri
目录下的 tauri.conf.json
中的 url、productName、icon、identifier
这 4 个字段,其中 icon 可以从 icons 目录选择一个,也可以去 macOSicons 下载符合产品名称的tauri.conf.json
修改 windows
属性对应的 width/height
,是否全屏 fullscreen
,是否可以调整大小 resizable
,假如想适配 Mac 沉浸式头部,可以将 transparent
设置成 true
,找到 Header 元素加一个 padding-top
样式即可,不想适配改成 false
也行npm run dev
本地调试看看效果,此外可以使用 npm run dev:debug
进行容器调试npm run build
运行即可打生产包首先需要使用 npm run dev:debug
打开 devtools 调试模式,找到你需要修改的样式名称,先在 devtools 里面验证效果;找到 pake.js
中样式位置 style.innerHTML
,将需要覆盖的样式加上即可,有一些案例你可以模仿。
参考 pake.js
中事件监听 document.addEventListener
,直接编写即可,这里更多是基础前端的技术。
参考 pake.js
中通信代码 postMessage
,写好事件监听,然后用 window.ipc.postMessage
将事件以及参数传递出来,然后参考容器接收事件 window.drag_window
,自己处理即可,更多可以参考 tauri 以及 wry 的官方文档。
Pake 的发展离不开这些 Hacker 们,一起贡献了大量能力,也欢迎关注他们 ❤️
Tw93 |
Tlntin |
Pan93412 |
Bryan Lee |
Volare |
Horus |
Steam |
2nthony |
Aiello |
Hyzhao |
Liusishan |
Ranger |