4.3 KiB
4.3 KiB
高级用法
通过样式修改、JavaScript 注入和容器通信等方式自定义 Pake 应用。
样式自定义
通过修改 CSS 移除广告或自定义外观。
快速流程:
- 运行
pnpm run dev进入开发模式 - 使用开发者工具找到要修改的元素
- 编辑
src-tauri/src/inject/style.js:
const css = `
.ads-banner { display: none !important; }
.header { background: #1a1a1a !important; }
`;
JavaScript 注入
添加自定义功能,如键盘快捷键。
实现方式:
- 编辑
src-tauri/src/inject/event.js - 添加事件监听器:
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-essential、libwebkit2gtk、系统依赖
- macOS: Xcode 命令行工具 (
安装
# 克隆仓库
git clone https://github.com/tw93/Pake.git
cd Pake
# 安装依赖
pnpm install
# 开始开发
pnpm run dev
开发命令
- CLI 更改: 编辑
bin/中的文件,然后运行pnpm run cli:build - 核心应用更改: 编辑
src-tauri/src/中的文件,然后运行pnpm run dev - 注入逻辑: 修改
src-tauri/src/inject/中的文件以进行网页自定义 - 测试: 运行
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