Files
Pake/docs/advanced-usage_CN.md
2025-08-29 10:42:47 +08:00

4.3 KiB
Raw Blame History

高级用法

通过样式修改、JavaScript 注入和容器通信等方式自定义 Pake 应用。

样式自定义

通过修改 CSS 移除广告或自定义外观。

快速流程:

  1. 运行 pnpm run dev 进入开发模式
  2. 使用开发者工具找到要修改的元素
  3. 编辑 src-tauri/src/inject/style.js
const css = `
  .ads-banner { display: none !important; }
  .header { background: #1a1a1a !important; }
`;

JavaScript 注入

添加自定义功能,如键盘快捷键。

实现方式:

  1. 编辑 src-tauri/src/inject/event.js
  2. 添加事件监听器:
document.addEventListener("keydown", (e) => {
  if (e.ctrlKey && e.key === "k") {
    // 自定义操作
  }
});

容器通信

在网页内容和 Pake 容器之间发送消息。

网页端JavaScript

window.__TAURI__.invoke("handle_scroll", {
  scrollY: window.scrollY,
  scrollX: window.scrollX,
});

容器端Rust

#[tauri::command]
fn handle_scroll(scroll_y: f64, scroll_x: f64) {
  println!("滚动位置: {}, {}", scroll_x, scroll_y);
}

窗口配置

pake.json 中配置窗口属性:

{
  "windows": {
    "width": 1200,
    "height": 780,
    "fullscreen": false,
    "resizable": true
  },
  "hideTitleBar": true
}

静态文件打包

打包本地 HTML/CSS/JS 文件:

pake ./my-app/index.html --name my-static-app --use-local-file

要求Pake CLI >= 3.0.0

项目结构

了解 Pake 的代码库结构将帮助您有效地进行导航和贡献:

├── bin/                    # CLI 源代码 (TypeScript)
│   ├── builders/          # 平台特定的构建器
│   ├── helpers/           # 实用函数
│   └── options/           # CLI 选项处理
├── docs/                  # 项目文档
├── src-tauri/             # Tauri 应用核心
│   ├── src/
│   │   ├── app/           # 核心模块(窗口、托盘、快捷键)
│   │   ├── inject/        # 网页注入逻辑
│   │   └── lib.rs         # 应用程序入口点
│   ├── icons/             # macOS 图标 (.icns)
│   ├── png/               # Windows/Linux 图标 (.ico, .png)
│   ├── pake.json          # 应用配置
│   └── tauri.*.conf.json  # 平台特定配置
├── scripts/               # 构建和实用脚本
└── tests/                 # 测试套件

关键组件

  • CLI 工具 (bin/): 基于 TypeScript 的命令接口,用于打包应用
  • Tauri 应用 (src-tauri/): 基于 Rust 的桌面框架
  • 注入系统 (src-tauri/src/inject/): 用于网页的自定义 CSS/JS 注入
  • 配置: 多平台应用设置和构建配置

开发工作流

前置条件

  • Node.js ≥22.0.0 (推荐 LTS较旧版本 ≥16.0.0 可能可用)
  • Rust ≥1.89.0 (推荐稳定版,较旧版本 ≥1.78.0 可能可用)
  • 平台特定构建工具:
    • macOS: Xcode 命令行工具 (xcode-select --install)
    • Windows: Visual Studio 构建工具与 MSVC
    • Linux: build-essentiallibwebkit2gtk、系统依赖

安装

# 克隆仓库
git clone https://github.com/tw93/Pake.git
cd Pake

# 安装依赖
pnpm install

# 开始开发
pnpm run dev

开发命令

  1. CLI 更改: 编辑 bin/ 中的文件,然后运行 pnpm run cli:build
  2. 核心应用更改: 编辑 src-tauri/src/ 中的文件,然后运行 pnpm run dev
  3. 注入逻辑: 修改 src-tauri/src/inject/ 中的文件以进行网页自定义
  4. 测试: 运行 pnpm test 进行综合验证
  • 开发模式pnpm run dev(热重载)
  • 构建pnpm run build
  • 调试构建pnpm run build:debug
  • CLI 构建pnpm run cli:build

测试

# 运行所有测试(单元 + 集成 + 构建器)
pnpm test

# 构建 CLI 以供测试
pnpm run cli:build

常见构建问题

  • Rust 编译错误: 在 src-tauri/ 目录中运行 cargo clean
  • Node 依赖问题: 删除 node_modules 并运行 pnpm install
  • macOS 权限错误: 运行 sudo xcode-select --reset

链接