18 KiB
18 KiB
中文 | English
Pake
特征
🏂 小:相比传统的 Electron 套壳打包,要小将近 40 倍,不到 3M
😂 快:Pake 的底层使用的 Rust Tauri 框架,性能体验较 JS 框架要轻快不少,内存小很多
🩴 特:不是单纯打包,实现了快捷键的透传、沉浸式的窗口、拖动、样式改写、去广告、产品的极简风格定制
🐶 玩:只是一个很简单的小玩具,用 Rust 替代之前套壳网页打包的老思路,其实 PWA 也很好
下载
| WeRead Mac Linux Windows | Twitter Mac Linux Windows |
![]() |
![]() |
| ChatGPT Mac Linux Windows | Qwerty Mac Linux Windows |
![]() |
![]() |
| Code Mac Linux Windows | Reference Mac Linux Windows |
![]() |
![]() |
| YouTube Mac Linux Windows | Flomo Mac Linux Windows |
![]() |
![]() |
命令行打包
Pake 提供了命令行工具,可以更快捷方便地一键自定义打你需要的包,详细可见 文档。
// 使用 npm 进行安装
npm install -g pake-cli
// 命令使用
pake url [options]
// 随便玩玩,首次由于安装环境会有些慢,后面就快了
pake https://weekly.tw93.fun --name Weekly --transparent
假如你是不太会使用命令行的小白,使用 GitHub Actions 在线编译多系统版本 也是一个不错的选择,可查看文档。
快捷键
| 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
// 打包应用
npm run build
文档说明
- 总的项目文档树
.
├── app.csv
├── bin
│ ├── builders
│ ├── cli.ts
│ ├── defaults.ts
│ ├── helpers
│ ├── options
│ ├── README_EN.md
│ ├── README.md
│ ├── types.ts
│ └── utils
├── cli.js
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── dist
│ └── cli.js
├── icns2png.py
├── LICENSE
├── package.json
├── pake-default.icns
├── README_EN.md
├── README.md
├── rollup.config.js
├── script
│ ├── build.bat
│ ├── build.sh
│ ├── sd-apple-x64
│ ├── sd.exe
│ └── sd-linux-x64
├── src-tauri
│ ├── assets
│ ├── build.rs
│ ├── Cargo.lock
│ ├── Cargo.toml
│ ├── icons
│ ├── png
│ ├── src
│ ├ ├──main.rs
│ ├ └──pake.js
│ ├── tauri.conf.json
│ ├── tauri.linux.conf.json
│ ├── tauri.macos.conf.json
│ └── tauri.windows.conf.json
└── tsconfig.json
- app.csv:用于bash/bat命令批量替换打包。
- bin:采用TypeScript编写,为pake-cli,即pake命令行打包工具的源码,可以使用
npm run cli:build来生成最终配置文件dist\cli.js。 - cli.js:pake-cli的入口文件,该文件调用
dist\cli.js文件,基本不用修改,可以忽略。 - dist\cli.js:由
npm run cli:build生成。 - icns2png.py:python3编写,用于将Mac默认的icns图标转化为windows/Linux的ico与png格式图标。
- package.json:npm模块依赖配置文件,运行
npm i与npm run xxx时候需要用到该文件,用于构建基础开发环境。 - pake-default.icns:pake默认的图标,适用于MacOS。
- script:用于批量打包多个app的脚本,内置了sd二进制包。可以用
npm run build:all-unix和npm run build:all-windows分别调用Mac/Linux与Windows的批量打包功能。 - src-tauri/assets:储存了一个Linux的desktop图标配置文件和Windows msi安装配置文件。
- src-tauri/build.rs:tauri编译入口,基本不用修改,可忽略。
- src-tauri/Cargo.lock:cargo包管理配置结果文件,可忽略。
- src-tauri/Cargo.toml:cargo包依赖配置文件,用于管理各个crate版本信息,基本不用修改,可忽略。
- src-tauri/icons:储存了一系列icns格式的图标文件,适用于MacOS应用图标。
- src-tauri/png:由上面的icons文件夹生成,储存了ico与png格式文件,适用于Linux/Windows的应用图标。
- src-tauri/src/main.rc:主程序文件,需要修改程序,跨平台移植方案,重点修改这个。
- src-tauri/src/pake.js:主程序文件配套的js代码,用于添加快捷键监听,页面渲染效果等等。
- src-tauri/tauri.conf.json:主配置文件,用于控制包名,版本号,打开链接,窗口大小等等。
- src-tauri/tauri.linux.conf.json:Linux平台编译时用到的配置文件,包含Linux专用图标,维护者,二进制格式,映射相关等等。
- src-tauri/tauri.macos.conf.json:MacOS平台编译时用到的配置文件,包含MacOS专用图标,维护者,二进制格式等等。
- src-tauri/tauri.windows.conf.json:Windows平台编译时用到的配置文件,包含Windows专用图标,维护者,二进制格式,左上角小图标映射相关等等。
- tsconfig.json:TypeScript配置,基本不需要修改,可忽略。
打新包
- 修改
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运行即可打生产包
高级用法
1. 如何改写样式,如去掉原站广告、不想要的模块、甚至重新设计?
首先需要使用 npm run dev:debug 打开 devtools 调试模式,找到你需要修改的样式名称,先在 devtools 里面验证效果;找到 pake.js 中样式位置 style.innerHTML ,将需要覆盖的样式加上即可,有一些案例你可以模仿。
2. 如何注入 JS 的逻辑,比如实现事件监听,比如说键盘快捷键?
参考 pake.js 中事件监听 document.addEventListener,直接编写即可,这里更多是基础前端的技术。
3. 如何进行容器内的事件和 Pake 通信,比如说 Web 的拖拽、滚动、特殊点击传递啥的?
参考 pake.js 中通信代码 postMessage,写好事件监听,然后用 window.ipc.postMessage 将事件以及参数传递出来,然后参考容器接收事件 window.drag_window,自己处理即可,更多可以参考 tauri 以及 wry 的官方文档。
开发者
Pake 的发展离不开这些 Hacker 们,一起贡献了大量能力,也欢迎关注他们 ❤️
|
Tw93 |
Tlntin |
Pan93412 |
Volare |
Essesoul |
Bryan Lee |
Horus |
|
Steam |
2nthony |
Aiello |
Ayaka Neko |
Hyzhao |
Liusishan |
Ranger |
支持
- 我有两只猫,一只叫汤圆,一只叫可乐,假如觉得 Pake 让你生活更美好,可以给汤圆可乐 喂罐头 🥩🍤。
- 如果你喜欢 Pake,可以在 Github Star,更欢迎 推荐 给你志同道合的朋友使用。
- 可以关注我的 Twitter 获取到最新的 Pake 更新消息,也欢迎加入 Telegram 聊天群。
最后
- 希望大伙玩的过程中有一种学习新技术的喜悦感,如果有新点子欢迎告诉我
- 假如你发现有很适合做成桌面 App 的网页也很欢迎告诉我,我给加到里面来








