首页
/ 如何用 Pake 的 --proxy-url 让打包的桌面应用的所有请求走指定代理?

如何用 Pake 的 --proxy-url 让打包的桌面应用的所有请求走指定代理?

2026-09-08 17:14:58作者:江焘钦

当你用 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 对象,oktrue,安装包的绝对路径在 outputs[].path 中;失败时 okfalseerror 中带 codemessagehint。所有日志走 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.jsrunProxyTest)只验证命令行能正确解析 --proxy-url 参数,即该参数的生效方式是写入构建,而不是构建期连通性测试。

使用时的限制:

  • 平台:Windows 和 Linux 可用;macOS 需要 macOS 14+。
  • 打包时固化:代理地址在构建时烧进应用二进制,不能在运行时更改。要换代理,只能带新的 --proxy-url 重新执行打包命令。
  • 图标下载例外:如上文所述,图标获取不经过 --proxy-url,网络受限环境下按上面 curl -x 的方式手动下载后再传入 --icon

完成打包后,应用窗口内发出的所有 WebView 请求都会走你指定的代理;后续想更换代理地址,重新执行一次带新 --proxy-url 的打包命令即可。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
33
18
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.14 K
2.75 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
857
1.35 K
docsdocs
暂无描述
Markdown
898
5.82 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
531
596
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
921
1.84 K
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.8 K
1.02 K
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.36 K
1.46 K
cann-learning-hubcann-learning-hub
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
1.02 K
519
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
548
391