如何用 Pake 的 --proxy-url 让打包的桌面应用的所有请求走指定代理?
当你用 Pake 把一个网页打包成桌面应用后,应用窗口内的所有网络请求默认直连。如果这些请求必须经过一个代理(例如本机跑着的 HTTP 代理 127.0.0.1:7890),可以用 --proxy-url 参数:它在打包时把代理地址写入应用的 WebView,使应用的所有网络请求走指定代理。该参数在 Windows 和 Linux 上可用;macOS 上需要 macOS 14+ 才能生效。注意:代理地址是打包时固化进二进制的,不能在运行时修改。
准备可用的 Pake CLI
按 docs/cli-usage.md 安装:
# 推荐(pnpm)
pnpm install -g pake-cli
# 或 npm
npm install -g pake-cli
# 遇到权限问题时,可不安装直接运行
npx pake-cli [url] [options]
环境要求:Node.js 推荐 22.0+(20.0.0+ 也可能可用);Rust ≥1.85.0,缺失时 CLI 会提示安装。
用 --proxy-url 执行打包命令
在打包命令上追加 --proxy-url,值为代理地址,支持 http://、https:// 和 socks5:// 三种格式:
# HTTP 代理
pake https://example.com --name MyApp --proxy-url http://127.0.0.1:7890
# SOCKS5 代理
pake https://example.com --name MyApp --proxy-url socks5://127.0.0.1:7891
127.0.0.1:7890 是文档中的示例地址,请替换为你本机实际在运行的代理端口。打包产物默认输出到当前工作目录,首次打包需要配置环境,耗时较长属正常现象。
加上 --json 可以获得机器可读的结果,便于判断打包是否成功:成功时 stdout 是一个 JSON 对象,ok 为 true,安装包的绝对路径在 outputs[].path 中;失败时 ok 为 false,error 中带 code、message 和 hint。所有日志走 stderr。
可选:用 JSON 配置文件写 proxyUrl
如果不喜欢拼一长串命令行参数,可以把选项放进配置文件。字段是 camelCase 的 CLI 选项名,加上 url;代理字段为 proxyUrl,结构见 schema/pake.schema.json:
{
"url": "https://example.com",
"name": "MyApp",
"proxyUrl": "http://127.0.0.1:7890"
}
pake --config app.json
两个规则需要注意:显式的 CLI 参数总是优先于配置文件中的字段;未知字段、类型错误会直接报错失败。
图标下载不走 --proxy-url,需要手动绕开
--proxy-url 只配置打包后应用的 WebView 代理,打包过程中 Pake 自动抓取网站图标的下载不走这个代理。如果你的网络环境下图标 URL 必须经过代理才能访问(例如从国内下载 Google/GitHub 的图标资源),先通过代理手动下载图标,再把本地路径传给 --icon。仓库技能文档 plugins/pake/skills/pake/SKILL.md 给出的做法(把 <proxy-host>:<proxy-port> 和 <icon-url> 替换为你的代理地址和图标 URL):
curl -x http://<proxy-host>:<proxy-port> -o /tmp/icon.png "<icon-url>" --connect-timeout 15 -s
pake "<URL>" --icon /tmp/icon.png --json
<URL> 即你要打包的目标网址。Pake 会把本地图标自动转换为平台格式:macOS .icns、Windows .ico、Linux .png。
结果验证与已知限制
打包完成后验证以下几点(均来自文档说明):
- 当前工作目录出现安装产物;使用
--json时确认 stdout 中ok: true并读取outputs[].path得到产物路径。 - 仓库自身的代理测试(tests/index.js 的
runProxyTest)只验证命令行能正确解析--proxy-url参数,即该参数的生效方式是写入构建,而不是构建期连通性测试。
使用时的限制:
- 平台:Windows 和 Linux 可用;macOS 需要 macOS 14+。
- 打包时固化:代理地址在构建时烧进应用二进制,不能在运行时更改。要换代理,只能带新的
--proxy-url重新执行打包命令。 - 图标下载例外:如上文所述,图标获取不经过
--proxy-url,网络受限环境下按上面curl -x的方式手动下载后再传入--icon。
完成打包后,应用窗口内发出的所有 WebView 请求都会走你指定的代理;后续想更换代理地址,重新执行一次带新 --proxy-url 的打包命令即可。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0629
MiniCPM5-2BMiniCPM5-2B 是一款面向端侧、本地部署和资源受限场景的 2B 稠密 Transformer,能够达到同尺寸开源模型 SOTA 水平。Markdown00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
HivisionIDPhotos⚡️HivisionIDPhotos: a lightweight and efficient AI ID photos tools. 一个轻量级的AI证件照制作算法。Python07
DragonOSDragonOS is an operating system developed from scratch using Rust, with Linux compatibility. It is designed for **Serverless** scenarios. 使用Rust从0自研内核,具有Linux兼容性的操作系统,面向云计算Serverless场景而设计。Rust00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00