14 KiB
CLI 使用指南
English | 简体中文
完整的命令行参数说明和基础用法指南。
安装
请确保您的 Node.js 版本为 22 或更高版本(例如 22.11.0)。注意:较旧的版本 ≥18.0.0 也可能可以工作。
推荐方式 (pnpm):
pnpm install -g pake-cli
备选方式 (npm):
npm install -g pake-cli
如果遇到权限问题:
# 使用 npx 运行,无需全局安装
npx pake-cli [url] [选项]
# 或者永久修复 npm 权限
npm config set prefix ~/.npm-global
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
前置条件:
- Node.js ≥18.0.0
- Rust ≥1.78.0(如缺失将自动安装)
- Windows/Linux:详细系统依赖请参考 高级用法指南
快速开始
# 基础用法 - 只需要提供URL(自动获取网站图标)
pake https://weekly.tw93.fun --name "Weekly"
# 自定义图标和窗口大小(macOS示例)
pake https://weekly.tw93.fun --name "Weekly" --icon https://cdn.tw93.fun/pake/weekly.icns --width 1200 --height 800
# macOS 沉浸式体验
pake https://weekly.tw93.fun --name "Weekly" --hide-title-bar
# 完整示例:多个选项组合使用
pake https://github.com --name "GitHub Desktop" --width 1400 --height 900 --show-system-tray --debug
# 注重隐私的应用:隐身模式
pake https://duckduckgo.com --name "DuckDuckGo" --incognito --always-on-top
命令行使用
pake [url] [options]
应用程序的打包结果将默认保存在当前工作目录。由于首次打包需要配置环境,这可能需要一些时间,请耐心等待。
macOS 输出:在 macOS 上,Pake 默认创建 DMG 安装程序。如需创建
.app包进行测试(避免用户交互),请设置环境变量PAKE_CREATE_APP=1。注意:打包过程需要使用
Rust环境。如果您没有安装Rust,系统会提示您是否要安装。如果遇到安装失败或超时的问题,您可以 手动安装。
[url]
url 是您需要打包的网页链接 🔗 或本地 HTML 文件的路径,此参数为必填。
[options]
您可以通过传递以下选项来定制打包过程。以下是最常用的选项:
| 选项 | 描述 | 示例 |
|---|---|---|
--name |
应用程序名称 | --name "Weekly" |
--icon |
自定义图标(可选,自动获取网站图标) | --icon https://cdn.tw93.fun/pake/weekly.icns |
--width |
窗口宽度(默认:1200px) | --width 1400 |
--height |
窗口高度(默认:780px) | --height 900 |
--hide-title-bar |
沉浸式标题栏(仅macOS) | --hide-title-bar |
--debug |
启用开发者工具 | --debug |
完整选项请参见下面的详细说明:
[name]
指定应用程序的名称,如果未指定,系统会提示您输入,建议使用英文单词。
注意: 支持带空格的名称,会自动处理不同平台的命名规范:
- Windows/macOS: 保持空格和大小写(如
"Google Translate") - Linux: 自动转换为小写并用连字符连接(如
"google-translate")
--name <string>
--name MyApp
# 带空格的名称:
--name "Google Translate"
[icon]
可选参数:不传此参数时,Pake 会自动获取网站图标并转换为对应格式。如需自定义图标,可访问 icon-icons 或 macOSicons 下载。
支持本地或远程文件,自动转换为平台所需格式:
- macOS:
.icns格式 - Windows:
.ico格式 - Linux:
.png格式
--icon <path>
# 示例:
# 不传 --icon 参数,自动获取网站图标
pake https://github.com --name GitHub
# 使用自定义图标
--icon ./my-icon.png
--icon https://cdn.tw93.fun/pake/weekly.icns # 远程图标(.icns适用于macOS)
[height]
设置应用窗口的高度,默认为 780px。
--height <number>
[width]
设置应用窗口的宽度,默认为 1200px。
--width <number>
[hide-title-bar]
设置是否启用沉浸式头部,默认为 false(不启用)。当前只对 macOS 上有效。
--hide-title-bar
[fullscreen]
设置应用程序是否在启动时自动全屏,默认为 false。使用以下命令可以设置应用程序启动时自动全屏。
--fullscreen
[maximize]
设置应用程序是否在启动时最大化窗口,默认为 false。使用以下命令可以设置应用程序启动时窗口最大化。
--maximize
[activation-shortcut]
设置应用程序的激活快捷键。默认为空,不生效,可以使用以下命令自定义激活快捷键,例如 CmdOrControl+Shift+P,使用可参考 available-modifiers。
--activation-shortcut <string>
[always-on-top]
设置是否窗口一直在最顶层,默认为 false。
--always-on-top
[app-version]
设置打包应用的版本号,和 package.json 里面 version 命名格式一致,默认为 1.0.0。
--app-version <string>
[dark-mode]
强制 Mac 打包应用使用黑暗模式,默认为 false。
--dark-mode
[disabled-web-shortcuts]
设置是否禁用原有 Pake 容器里面的网页操作快捷键,默认为 false。
--disabled-web-shortcuts
[multi-arch]
设置打包结果同时支持 Intel 和 M1 芯片,仅适用于 macOS,默认为 false。
准备工作
-
注意:启用此选项后,需要使用 rust 官网的 rustup 安装 rust,不支持通过 brew 安装。
-
对于 Intel 芯片用户,需要安装 arm64 跨平台包,以使安装包支持 M1 芯片。使用以下命令安装:
rustup target add aarch64-apple-darwin -
对于 M1 芯片用户,需要安装 x86 跨平台包,以使安装包支持 Intel 芯片。使用以下命令安装:
rustup target add x86_64-apple-darwin
使用方法
--multi-arch
[targets]
指定构建目标架构或格式:
- Linux:
deb,appimage,deb-arm64,appimage-arm64(默认:deb) - Windows:
x64,arm64(未指定时自动检测) - macOS:
intel,apple,universal(未指定时自动检测)
--targets <target>
# 示例:
--targets arm64 # Windows ARM64
--targets x64 # Windows x64
--targets universal # macOS 通用版本(Intel + Apple Silicon)
--targets apple # 仅 macOS Apple Silicon
--targets intel # 仅 macOS Intel
--targets deb # Linux DEB 包(x64)
--targets rpm # Linux RPM 包(x64)
--targets appimage # Linux AppImage(x64)
--targets deb-arm64 # Linux DEB 包(ARM64)
--targets rpm-arm64 # Linux RPM 包(ARM64)
--targets appimage-arm64 # Linux AppImage(ARM64)
Linux ARM64 注意事项:
- 交叉编译需要额外设置。需要安装
gcc-aarch64-linux-gnu并配置交叉编译环境变量。 - ARM64 支持让 Pake 应用可以在基于 ARM 的 Linux 设备上运行,包括 Linux 手机(postmarketOS、Ubuntu Touch)、树莓派和其他 ARM64 Linux 系统。
- 使用
--target appimage-arm64可以创建便携式 ARM64 应用,在不同的 ARM64 Linux 发行版上运行。
[user-agent]
自定义浏览器的用户代理请求头,默认为空。
--user-agent <string>
[show-system-tray]
设置应用程序显示在系统托盘,默认为 false。
--show-system-tray
[system-tray-icon]
设置通知栏托盘图标,仅在启用通知栏托盘时有效。图标必须为 .ico 或 .png 格式,分辨率为 32x32 到 256x256 像素。
--system-tray-icon <path>
[hide-on-close]
点击关闭按钮时隐藏窗口而不是退出应用程序。平台特定默认值:macOS 为 true,Windows/Linux 为 false。
# 关闭时隐藏(macOS 默认行为)
--hide-on-close
--hide-on-close true
# 立即关闭应用程序(Windows/Linux 默认行为)
--hide-on-close false
[start-to-tray]
启动时将应用程序最小化到系统托盘而不是显示窗口。必须与 --show-system-tray 一起使用。默认为 false。
--start-to-tray
# 示例:启动时隐藏到托盘(必须与 --show-system-tray 一起使用)
pake https://github.com --name GitHub --show-system-tray --start-to-tray
注意:双击托盘图标可以显示/隐藏窗口。如果不与 --show-system-tray 一起使用,此选项将被忽略。
[title]
设置窗口标题栏文本,macOS 未指定时不显示标题,Windows/Linux 回退使用应用名称。
--title <string>
# 示例:
--title "我的应用"
--title "音乐播放器"
[incognito]
以隐私/隐身浏览模式启动应用程序。默认为 false。启用后,webview 将在隐私模式下运行,这意味着它不会存储 cookie、本地存储或浏览历史记录。这对于注重隐私的应用程序很有用。
--incognito
[wasm]
启用 WebAssembly 支持,添加跨域隔离头部,适用于 Flutter Web 应用以及其他使用 WebAssembly 模块(如 sqlite3.wasm、canvaskit.wasm)的 Web 应用,默认为 false。
此选项会添加必要的 HTTP 头部(Cross-Origin-Opener-Policy: same-origin 和 Cross-Origin-Embedder-Policy: require-corp)以及浏览器标志,以启用 SharedArrayBuffer 和 WebAssembly 功能。
--wasm
# 示例:打包支持 WASM 的 Flutter Web 应用
pake https://flutter.dev --name FlutterApp --wasm
[enable-drag-drop]
启用原生拖拽功能。默认为 false。启用后,允许在应用中进行拖拽操作,如重新排序项目、文件上传以及其他在常规浏览器中有效的交互式拖拽行为。
--enable-drag-drop
# 示例:打包需要拖拽功能的应用
pake https://planka.example.com --name PlankApp --enable-drag-drop
[keep-binary]
保留原始二进制文件与安装包一起。默认为 false。启用后,除了平台特定的安装包外,还会输出一个可独立运行的可执行文件。
--keep-binary
# 示例:同时生成安装包和独立可执行文件
pake https://github.com --name GitHub --keep-binary
输出结果:同时创建安装包和独立可执行文件(Unix 系统为 AppName-binary,Windows 为 AppName.exe)。
[multi-instance]
允许打包后的应用同时运行多个实例。默认为 false,此时再次启动只会聚焦已有窗口。启用该选项后,可以同时打开同一个应用的多个窗口。
--multi-instance
# 示例:允许聊天应用同时开多个窗口
pake https://chat.example.com --name ChatApp --multi-instance
[installer-language]
设置 Windows 安装包语言。支持 zh-CN、ja-JP,更多在 Tauri 文档。默认为 en-US。
--installer-language <language>
[use-local-file]
当 url 为本地文件路径时,如果启用此选项,则会递归地将 url 路径文件所在的文件夹及其所有子文件复制到 Pake 的静态文件夹。默认不启用。
--use-local-file
# 基础静态文件打包
pake ./my-app/index.html --name "my-app" --use-local-file
[inject]
使用 inject 可以通过本地的绝对、相对路径的 css js 文件注入到你所指定 url 的页面中,从而为其做定制化改造。举个例子:一段可以通用到任何网页的广告屏蔽脚本,或者是优化页面 UI 展示的 css,你只需要书写一次可以将其通用到任何其他网页打包的 app。
支持逗号分隔和多个选项两种格式:
# 逗号分隔(推荐)
--inject ./tools/style.css,./tools/hotkey.js
# 多个选项
--inject ./tools/style.css --inject ./tools/hotkey.js
# 单个文件
--inject ./tools/style.css
[proxy-url]
为所有网络请求设置代理服务器。支持 HTTP、HTTPS 和 SOCKS5。在 Windows 和 Linux 上可用。在 macOS 上需要 macOS 14+。
--proxy-url http://127.0.0.1:7890
--proxy-url socks5://127.0.0.1:7891
[debug]
启用开发者工具和详细日志输出,用于调试。
--debug
打包完成
完成上述步骤后,您的应用程序应该已经成功打包。请注意,根据您的系统配置和网络状况,打包过程可能需要一些时间。请耐心等待,一旦打包完成,您就可以在指定的目录中找到应用程序安装包。
Docker 使用
# 在Linux上,您可以通过 Docker 运行 Pake CLI。
docker run -it --rm \ # Run interactively, remove container after exit
-v YOUR_DIR:/output \ # Files from container's /output will be in YOU_DIR
ghcr.io/tw93/pake \
<arguments>
# For example:
docker run -it --rm \
-v ./packages:/output \
ghcr.io/tw93/pake \
https://example.com --name MyApp --icon ./icon.png