diff --git a/CLAUDE.md b/CLAUDE.md index 2932ff2..6cd4e9b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -45,16 +45,16 @@ grep -r "window_config" src-tauri/src/ ```bash # Install dependencies -npm i +pnpm i # Development with hot reload (for testing app functionality) -npm run dev +pnpm run dev # CLI development -npm run cli:dev +pnpm run cli:dev # Production build -npm run build +pnpm run build ``` ### 3. Testing and Validation @@ -63,16 +63,16 @@ npm run build ```bash # Run comprehensive test suite (unit + integration + builder) -npm test +pnpm test # Build CLI for testing -npm run cli:build +pnpm run cli:build # Debug build for development -npm run build:debug +pnpm run build:debug # Multi-platform testing -npm run build:mac # macOS universal build +pnpm run build:mac # macOS universal build ``` **Testing Checklist:** @@ -89,7 +89,7 @@ npm run build:mac # macOS universal build - Do NOT use `PAKE_NO_CONFIG_OVERWRITE=1` - this environment variable is not implemented - For CLI testing: `node dist/cli.js https://example.com --name TestApp --debug` -- **For app functionality testing**: Use `npm run dev` to start development server with hot reload. This allows real-time testing of injected JavaScript changes without rebuilding the entire app. +- **For app functionality testing**: Use `pnpm run dev` to start development server with hot reload. This allows real-time testing of injected JavaScript changes without rebuilding the entire app. - The dev server automatically reloads when you modify files in `src-tauri/src/inject/` directory ## Core Components @@ -110,7 +110,7 @@ npm run build:mac # macOS universal build ## Documentation Guidelines - **Main README**: Only include common, frequently-used parameters to avoid clutter -- **CLI Documentation** (`bin/README.md`): Include ALL parameters with detailed usage examples +- **CLI Documentation** (`docs/cli-usage.md`): Include ALL parameters with detailed usage examples - **Rare/Advanced Parameters**: Should have full documentation in CLI docs but minimal/no mention in main README - **Examples of rare parameters**: `--title`, `--incognito`, `--system-tray-icon`, etc. @@ -133,7 +133,7 @@ npm run build:mac # macOS universal build ```bash # 1. Check logs -npm run dev 2>&1 | grep -i error +pnpm run dev 2>&1 | grep -i error # 2. Verify dependencies cargo check --manifest-path=src-tauri/Cargo.toml diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 23f2ea0..24881bd 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -36,20 +36,20 @@ git clone https://github.com/tw93/Pake.git cd Pake # Install dependencies -npm install +pnpm install # Start development -npm run dev +pnpm run dev ``` ### Testing ```bash # Run all tests (unit + integration + builder) -npm test +pnpm test # Build CLI for testing -npm run cli:build +pnpm run cli:build ``` ## Continuous Integration @@ -81,9 +81,11 @@ This file is already in `.gitignore` and should not be committed to the reposito ### Common Build Issues - **Rust compilation errors**: Run `cargo clean` in `src-tauri/` directory -- **Node dependency issues**: Delete `node_modules` and run `npm install` +- **Node dependency issues**: Delete `node_modules` and run `pnpm install` - **Permission errors on macOS**: Run `sudo xcode-select --reset` +See the [Advanced Usage Guide](docs/advanced-usage.md) for project structure and customization techniques. + ## More It is a good habit to create a feature request issue to discuss whether the feature is necessary before you implement it. However, it's unnecessary to create an issue to claim that you found a typo or improved the readability of documentation, just create a pull request. diff --git a/README.md b/README.md index 71c7414..49f3a39 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -

English | 简体中文 | 日本語

+

English | 简体中文 | 日本語

@@ -154,7 +154,7 @@ In addition, double-click the title bar to switch to full-screen mode. For Mac u ## Before starting -1. **For beginners**: Play with Popular Packages to find out Pake's capabilities, or try to pack your application with [GitHub Actions](). Don't hesitate to reach for assistance at [Discussion](https://github.com/tw93/Pake/discussions)! +1. **For beginners**: Play with Popular Packages to find out Pake's capabilities, or try to pack your application with [GitHub Actions](docs/github-actions-usage.md). Don't hesitate to reach for assistance at [Discussion](https://github.com/tw93/Pake/discussions)! 2. **For developers**: “Command-Line Packaging” supports macOS fully. For Windows/Linux users, it requires some tinkering. [Configure your environment](https://tauri.app/start/prerequisites/) before getting started. 3. **For hackers**: For people who are good at both front-end development and Rust, how about customizing your apps' function more with the following [Customized Development](#development)? @@ -162,7 +162,7 @@ In addition, double-click the title bar to switch to full-screen mode. For Mac u ![Pake](https://raw.githubusercontent.com/tw93/static/main/pake/pake.gif) -**Pake provides a command line tool, making the flow of package customization quicker and easier. See the [documentation](./bin/README.md) for more information.** +**Pake provides a command line tool, making the flow of package customization quicker and easier. See the [CLI usage guide](docs/cli-usage.md) for more information.** ```bash # Recommended (pnpm) @@ -178,7 +178,7 @@ pake url [OPTIONS]... pake https://weekly.tw93.fun --name Weekly --hide-title-bar ``` -If you are new to the command line, you can compile packages online with _GitHub Actions_. See the [Tutorial]() for more information. +If you are new to the command line, you can compile packages online with _GitHub Actions_. See our [documentation](#documentation) for detailed guides. ## Development @@ -197,12 +197,12 @@ pnpm run dev pnpm run build ``` -## Advanced Usage +## Documentation -1. You can refer to the [codebase structure](https://github.com/tw93/Pake/wiki/Description-of-Pake's-code-structure) before working on Pake, which will help you much in development. -2. Modify the `url` and `productName` fields in the `pake.json` file under the src-tauri directory, the "domain" field in the `tauri.config.json` file needs to be modified synchronously, as well as the `icon` and `identifier` fields in the `tauri.xxx.conf.json` file. You can select an `icon` from the `icons` directory or download one from [macOSicons](https://macosicons.com/#/) to match your product needs. -3. For configurations on window properties, you can modify the `pake.json` file to change the value of `width`, `height`, `fullscreen` (or not), `resizable` (or not), `hide_on_close` (hide window on close instead of exiting) of the `windows` property. To adapt to the immersive header on Mac, change `hideTitleBar` to `true`, look for the `Header` element, and add the `padding-top` property. -4. For advanced usages such as style rewriting, advertisement removal, JS injection, container message communication, and user-defined shortcut keys, see [Advanced Usage of Pake](https://github.com/tw93/Pake/wiki/Advanced-Usage-of-Pake). +- **[CLI Usage](docs/cli-usage.md)** ([中文](docs/cli-usage_CN.md)) - Command-line interface reference +- **[Advanced Usage](docs/advanced-usage.md)** ([中文](docs/advanced-usage_CN.md)) - Customization and advanced features +- **[GitHub Actions](docs/github-actions-usage.md)** ([中文](docs/github-actions-usage_CN.md)) - Build apps online +- **[Contributing](CONTRIBUTING.md)** - How to contribute to development ## Developers diff --git a/README_CN.md b/README_CN.md index 2b33616..8f53070 100644 --- a/README_CN.md +++ b/README_CN.md @@ -1,4 +1,4 @@ -

English | 简体中文 | 日本語

+

English | 简体中文 | 日本語

@@ -162,7 +162,7 @@ ![Pake](https://raw.githubusercontent.com/tw93/static/main/pake/pake.gif) -**Pake 提供了命令行工具,可以更快捷方便地一键自定义打包你需要的应用,详细可见 [文档](./bin/README_CN.md)。** +**Pake 提供了命令行工具,可以更快捷方便地一键自定义打包你需要的应用,详细可见 [CLI 使用指南](docs/cli-usage_CN.md)。** ```bash # 推荐方式 (pnpm) @@ -178,7 +178,7 @@ pake url [OPTIONS]... pake https://weekly.tw93.fun --name Weekly --hide-title-bar ``` -假如你不太会使用命令行,或许使用 **GitHub Actions 在线编译多系统版本** 是一个不错的选择,可查看 [文档](https://github.com/tw93/Pake/wiki/%E5%9C%A8%E7%BA%BF%E7%BC%96%E8%AF%91%EF%BC%88%E6%99%AE%E9%80%9A%E7%94%A8%E6%88%B7%E4%BD%BF%E7%94%A8%EF%BC%89)。 +如果你不太会使用命令行,可以使用 **GitHub Actions 在线编译**,详细步骤请参考[文档](#文档)。 ## 定制开发 @@ -198,12 +198,12 @@ pnpm run build ``` -## 高级使用 +## 文档 -1. 代码结构可参考 [文档](https://github.com/tw93/Pake/wiki/Pake-%E7%9A%84%E4%BB%A3%E7%A0%81%E7%BB%93%E6%9E%84%E8%AF%B4%E6%98%8E),便于你在开发前了解更多。 -2. 修改 src-tauri 目录下 `pake.json` 中的 `url` 和 `productName` 字段,需同步修改下 `tauri.config.json` 中的 `domain` 字段,以及 `tauri.xxx.conf.json` 中的 `icon` 和 `identifier` 字段,其中 `icon` 可以从 icons 目录选择一个,也可以去 [macOSicons](https://macosicons.com/#/) 下载符合效果的。 -3. 关于窗口属性设置,可以在 `pake.json` 修改 windows 属性对应的 `width/height`,fullscreen 是否全屏,resizable 是否可以调整大小,hide_on_close 关闭时是否隐藏窗口而不是退出,假如想适配 Mac 沉浸式头部,可以将 hideTitleBar 设置成 `true`,找到 Header 元素加一个 padding-top 样式即可,不想适配改成 `false` 也行。 -4. 此外样式改写、屏蔽广告、逻辑代码注入、容器消息通信、自定义快捷键可见 [高级用法](https://github.com/tw93/Pake/wiki/Pake-%E7%9A%84%E9%AB%98%E7%BA%A7%E7%94%A8%E6%B3%95)。 +- **[CLI 使用指南](docs/cli-usage_CN.md)** - 命令行接口参考 +- **[高级用法指南](docs/advanced-usage_CN.md)** - 自定义和高级功能 +- **[GitHub Actions 指南](docs/github-actions-usage_CN.md)** - 在线构建应用 +- **[贡献指南](CONTRIBUTING.md)** - 如何参与开发 ## 开发者 diff --git a/README_JP.md b/README_JP.md index 2aa4d81..e1b3cd4 100644 --- a/README_JP.md +++ b/README_JP.md @@ -1,4 +1,4 @@ -

English | 简体中文 | 日本語

+

English | 简体中文 | 日本語

@@ -154,7 +154,7 @@ ## 始める前に -1. **初心者の方へ**: 「人気のパッケージ」を使用して Pake の機能を試してみてください。または、[GitHub Actions]()を使用してアプリケーションをパッケージ化してみてください。[ディスカッション](https://github.com/tw93/Pake/discussions)で助けを求めることもできます! +1. **初心者の方へ**: 「人気のパッケージ」を使用して Pake の機能を試してみてください。または、[GitHub Actions](docs/github-actions-usage.md)を使用してアプリケーションをパッケージ化してみてください。[ディスカッション](https://github.com/tw93/Pake/discussions)で助けを求めることもできます! 2. **開発者の方へ**: 「コマンドラインパッケージング」を使用してください。macOS では完全にサポートされています。Windows/Linux ユーザーは、[環境を設定](https://tauri.app/start/prerequisites/)する必要があります。 3. **ハッカーの方へ**: フロントエンド開発と Rust の両方が得意な方は、以下の[カスタマイズ開発](#開発)でアプリの機能をさらにカスタマイズしてみてください。 @@ -162,7 +162,7 @@ ![Pake](https://raw.githubusercontent.com/tw93/static/main/pake/pake.gif) -**Pake はコマンドラインツールを提供しており、必要なパッケージをより迅速かつ簡単にカスタマイズすることができます。詳細は[ドキュメント](./bin/README.md)をご覧ください。** +**Pake はコマンドラインツールを提供しており、必要なパッケージをより迅速かつ簡単にカスタマイズすることができます。詳細は[CLI使用ガイド](docs/cli-usage.md)をご覧ください。** ```bash # 推奨方法 (pnpm) @@ -178,7 +178,7 @@ pake url [OPTIONS]... pake https://weekly.tw93.fun --name Weekly --hide-title-bar ``` -コマンドラインの使用に不慣れな場合は、_GitHub Actions_ を使用してオンラインでパッケージをコンパイルすることができます。[チュートリアル]()をご覧ください。 +コマンドラインの使用に不慣れな場合は、_GitHub Actions_ を使用してオンラインでパッケージをコンパイルすることができます。詳細な手順については [GitHub Actions 使用ガイド](docs/github-actions-usage.md) をご覧ください。 ## 開発 @@ -199,10 +199,10 @@ pnpm run build ## 高度な使用法 -1. [コードベースの構造](https://github.com/tw93/Pake/wiki/Description-of-Pake's-code-structure)を参照して、開発前により多くの情報を得ることができます。 +1. [CONTRIBUTING.md](CONTRIBUTING.md#project-structure)のコードベース構造を参照して、開発前により多くの情報を得ることができます。 2. `src-tauri` ディレクトリ内の `pake.json` ファイルの `url` と `productName` フィールドを変更する場合は、`tauri.config.json` ファイル内の `domain` フィールド、および `tauri.xxx.conf.json` ファイル内の `icon` と `identifier` フィールドを同期して変更する必要があります。`icon` は `icons` ディレクトリから選択することも、[macOSicons](https://macosicons.com/#/) から効果に合ったものをダウンロードすることもできます。 3. ウィンドウプロパティの設定については、`pake.json` ファイルを変更して `windows` プロパティの `width`、`height`、`fullscreen`(またはしない)、`resizable`(またはしない)の値を変更できます。Mac の没入型ヘッダーに適応するには、`hideTitleBar` を `true` に設定し、`Header` 要素を見つけて `padding-top` プロパティを追加します。 -4. スタイルの書き換え、広告の除去、JS の注入、コンテナメッセージ通信、ユーザー定義のショートカットキーについては、[高度な使用法](https://github.com/tw93/Pake/wiki/Advanced-Usage-of-Pake)を参照してください。 +4. スタイルの書き換え、広告の除去、JS の注入、コンテナメッセージ通信、ユーザー定義のショートカットキーについては、[高度な使用法](docs/advanced-usage.md)を参照してください。 ## 開発者 diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..c0f6272 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,20 @@ +# Pake Documentation + +Welcome to Pake documentation! Here you'll find comprehensive guides and documentation to help you start working with Pake as quickly as possible. + +## User Guides + +- **[CLI Usage](cli-usage.md)** ([中文](cli-usage_CN.md)) - Command-line interface reference +- **[GitHub Actions](github-actions-usage.md)** ([中文](github-actions-usage_CN.md)) - Build apps online without local setup + +## Developer Guides + +- **[Advanced Usage](advanced-usage.md)** ([中文](advanced-usage_CN.md)) - Customization, development, and advanced features +- **[Contributing](../CONTRIBUTING.md)** - How to contribute to Pake development + +## Quick Links + +- [Main Repository](https://github.com/tw93/Pake) +- [Releases](https://github.com/tw93/Pake/releases) +- [Discussions](https://github.com/tw93/Pake/discussions) +- [Issues](https://github.com/tw93/Pake/issues) diff --git a/docs/advanced-usage.md b/docs/advanced-usage.md new file mode 100644 index 0000000..6fd6da9 --- /dev/null +++ b/docs/advanced-usage.md @@ -0,0 +1,174 @@ +# Advanced Usage + +Customize Pake apps with style modifications, JavaScript injection, and container communication. + +## Style Customization + +Remove ads or customize appearance by modifying CSS. + +**Quick Process:** + +1. Run `pnpm run dev` for development +2. Use DevTools to find elements to modify +3. Edit `src-tauri/src/inject/style.js`: + +```javascript +const css = ` + .ads-banner { display: none !important; } + .header { background: #1a1a1a !important; } +`; +``` + +## JavaScript Injection + +Add custom functionality like keyboard shortcuts. + +**Implementation:** + +1. Edit `src-tauri/src/inject/event.js` +2. Add event listeners: + +```javascript +document.addEventListener("keydown", (e) => { + if (e.ctrlKey && e.key === "k") { + // Custom action + } +}); +``` + +## Container Communication + +Send messages between web content and Pake container. + +**Web Side (JavaScript):** + +```javascript +window.__TAURI__.invoke("handle_scroll", { + scrollY: window.scrollY, + scrollX: window.scrollX, +}); +``` + +**Container Side (Rust):** + +```rust +#[tauri::command] +fn handle_scroll(scroll_y: f64, scroll_x: f64) { + println!("Scroll: {}, {}", scroll_x, scroll_y); +} +``` + +## Window Configuration + +Configure window properties in `pake.json`: + +```json +{ + "windows": { + "width": 1200, + "height": 780, + "fullscreen": false, + "resizable": true + }, + "hideTitleBar": true +} +``` + +## Static File Packaging + +Package local HTML/CSS/JS files: + +```bash +pake ./my-app/index.html --name my-static-app --use-local-file +``` + +Requirements: Pake CLI >= 3.0.0 + +## Project Structure + +Understanding Pake's codebase structure will help you navigate and contribute effectively: + +```tree +├── bin/ # CLI source code (TypeScript) +│ ├── builders/ # Platform-specific builders +│ ├── helpers/ # Utility functions +│ └── options/ # CLI option processing +├── docs/ # Project documentation +├── src-tauri/ # Tauri application core +│ ├── src/ +│ │ ├── app/ # Core modules (window, tray, shortcuts) +│ │ ├── inject/ # Web page injection logic +│ │ └── lib.rs # Application entry point +│ ├── icons/ # macOS icons (.icns) +│ ├── png/ # Windows/Linux icons (.ico, .png) +│ ├── pake.json # App configuration +│ └── tauri.*.conf.json # Platform-specific configs +├── scripts/ # Build and utility scripts +└── tests/ # Test suites +``` + +### Key Components + +- **CLI Tool** (`bin/`): TypeScript-based command interface for packaging apps +- **Tauri App** (`src-tauri/`): Rust-based desktop framework +- **Injection System** (`src-tauri/src/inject/`): Custom CSS/JS injection for webpages +- **Configuration**: Multi-platform app settings and build configurations + +## Development Workflow + +### Prerequisites + +- Node.js ≥22.0.0 (recommended LTS, older versions ≥16.0.0 may work) +- Rust ≥1.89.0 (recommended stable, older versions ≥1.78.0 may work) +- Platform-specific build tools: + - **macOS**: Xcode Command Line Tools (`xcode-select --install`) + - **Windows**: Visual Studio Build Tools with MSVC + - **Linux**: `build-essential`, `libwebkit2gtk`, system dependencies + +### Installation + +```bash +# Clone the repository +git clone https://github.com/tw93/Pake.git +cd Pake + +# Install dependencies +pnpm install + +# Start development +pnpm run dev +``` + +### Development Commands + +1. **CLI Changes**: Edit files in `bin/`, then run `pnpm run cli:build` +2. **Core App Changes**: Edit files in `src-tauri/src/`, then run `pnpm run dev` +3. **Injection Logic**: Modify files in `src-tauri/src/inject/` for web customizations +4. **Testing**: Run `pnpm test` for comprehensive validation + +- **Dev mode**: `pnpm run dev` (hot reload) +- **Build**: `pnpm run build` +- **Debug build**: `pnpm run build:debug` +- **CLI build**: `pnpm run cli:build` + +### Testing + +```bash +# Run all tests (unit + integration + builder) +pnpm test + +# Build CLI for testing +pnpm run cli:build +``` + +### Common Build Issues + +- **Rust compilation errors**: Run `cargo clean` in `src-tauri/` directory +- **Node dependency issues**: Delete `node_modules` and run `pnpm install` +- **Permission errors on macOS**: Run `sudo xcode-select --reset` + +## Links + +- [CLI Documentation](cli-usage.md) +- [Testing Guide](testing.md) +- [GitHub Discussions](https://github.com/tw93/Pake/discussions) diff --git a/docs/advanced-usage_CN.md b/docs/advanced-usage_CN.md new file mode 100644 index 0000000..a2e7907 --- /dev/null +++ b/docs/advanced-usage_CN.md @@ -0,0 +1,174 @@ +# 高级用法 + +通过样式修改、JavaScript 注入和容器通信等方式自定义 Pake 应用。 + +## 样式自定义 + +通过修改 CSS 移除广告或自定义外观。 + +**快速流程:** + +1. 运行 `pnpm run dev` 进入开发模式 +2. 使用开发者工具找到要修改的元素 +3. 编辑 `src-tauri/src/inject/style.js`: + +```javascript +const css = ` + .ads-banner { display: none !important; } + .header { background: #1a1a1a !important; } +`; +``` + +## JavaScript 注入 + +添加自定义功能,如键盘快捷键。 + +**实现方式:** + +1. 编辑 `src-tauri/src/inject/event.js` +2. 添加事件监听器: + +```javascript +document.addEventListener("keydown", (e) => { + if (e.ctrlKey && e.key === "k") { + // 自定义操作 + } +}); +``` + +## 容器通信 + +在网页内容和 Pake 容器之间发送消息。 + +**网页端(JavaScript):** + +```javascript +window.__TAURI__.invoke("handle_scroll", { + scrollY: window.scrollY, + scrollX: window.scrollX, +}); +``` + +**容器端(Rust):** + +```rust +#[tauri::command] +fn handle_scroll(scroll_y: f64, scroll_x: f64) { + println!("滚动位置: {}, {}", scroll_x, scroll_y); +} +``` + +## 窗口配置 + +在 `pake.json` 中配置窗口属性: + +```json +{ + "windows": { + "width": 1200, + "height": 780, + "fullscreen": false, + "resizable": true + }, + "hideTitleBar": true +} +``` + +## 静态文件打包 + +打包本地 HTML/CSS/JS 文件: + +```bash +pake ./my-app/index.html --name my-static-app --use-local-file +``` + +要求:Pake CLI >= 3.0.0 + +## 项目结构 + +了解 Pake 的代码库结构将帮助您有效地进行导航和贡献: + +```tree +├── 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`、系统依赖 + +### 安装 + +```bash +# 克隆仓库 +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` + +### 测试 + +```bash +# 运行所有测试(单元 + 集成 + 构建器) +pnpm test + +# 构建 CLI 以供测试 +pnpm run cli:build +``` + +### 常见构建问题 + +- **Rust 编译错误**: 在 `src-tauri/` 目录中运行 `cargo clean` +- **Node 依赖问题**: 删除 `node_modules` 并运行 `pnpm install` +- **macOS 权限错误**: 运行 `sudo xcode-select --reset` + +## 链接 + +- [CLI 文档](cli-usage_CN.md) +- [测试指南](testing.md) +- [GitHub 讨论区](https://github.com/tw93/Pake/discussions) diff --git a/bin/README.md b/docs/cli-usage.md similarity index 98% rename from bin/README.md rename to docs/cli-usage.md index e3106c5..98cb852 100644 --- a/bin/README.md +++ b/docs/cli-usage.md @@ -1,4 +1,4 @@ -

English | 简体中文

+

English | 简体中文

## Installation @@ -346,6 +346,9 @@ Enable recursive copying. When the URL is a local file path, enabling this optio ```shell --use-local-file + +# Basic static file packaging +pake ./my-app/index.html --name "my-app" --use-local-file ``` #### [inject] diff --git a/bin/README_CN.md b/docs/cli-usage_CN.md similarity index 98% rename from bin/README_CN.md rename to docs/cli-usage_CN.md index a580db3..8078154 100644 --- a/bin/README_CN.md +++ b/docs/cli-usage_CN.md @@ -1,4 +1,4 @@ -

English | 简体中文

+

English | 简体中文

## 安装 @@ -345,6 +345,9 @@ pake https://flutter.dev --name FlutterApp --wasm ```shell --use-local-file + +# 基础静态文件打包 +pake ./my-app/index.html --name "my-app" --use-local-file ``` #### [inject] diff --git a/README_ACTION.md b/docs/github-action.md similarity index 100% rename from README_ACTION.md rename to docs/github-action.md diff --git a/docs/github-actions-usage.md b/docs/github-actions-usage.md new file mode 100644 index 0000000..1820129 --- /dev/null +++ b/docs/github-actions-usage.md @@ -0,0 +1,43 @@ +# GitHub Actions Usage Guide + +Build Pake apps online without installing development tools locally. + +## Quick Steps + +### 1. Fork Repository + +[Fork this project](https://github.com/tw93/Pake/fork) + +### 2. Run Workflow + +1. Go to Actions tab in your forked repository +2. Select `Build App With Pake CLI` +3. Fill in the form (same parameters as [CLI options](cli-usage.md)) +4. Click `Run Workflow` + +![Actions Interface](https://gw.alipayobjects.com/zos/k/wf/XNWeAg.png) + +### 3. Download App + +- Green checkmark = build success +- Click the workflow name to view details +- Find `Artifacts` section and download your app + +![Build Success](https://gw.alipayobjects.com/zos/k/dd/QaGees.png) + +### 4. Build Times + +- **First run**: ~10-15 minutes (sets up cache) +- **Subsequent runs**: ~5 minutes (uses cache) +- Cache size: 400-600MB when complete + +## Tips + +- Be patient on first run - let cache build completely +- Stable network connection recommended +- If build fails, delete cache and retry + +## Links + +- [CLI Documentation](cli-usage.md) +- [Advanced Usage](advanced-usage.md) diff --git a/docs/github-actions-usage_CN.md b/docs/github-actions-usage_CN.md new file mode 100644 index 0000000..ab7d506 --- /dev/null +++ b/docs/github-actions-usage_CN.md @@ -0,0 +1,43 @@ +# GitHub Actions 使用指南 + +无需本地安装开发工具,在线构建 Pake 应用。 + +## 快速步骤 + +### 1. Fork 仓库 + +[Fork 此项目](https://github.com/tw93/Pake/fork) + +### 2. 运行工作流 + +1. 前往你 Fork 的仓库的 Actions 页面 +2. 选择 `Build App With Pake CLI` +3. 填写表单(参数与 [CLI 选项](cli-usage_CN.md) 相同) +4. 点击 `Run Workflow` + +![Actions 界面](https://gw.alipayobjects.com/zos/k/wf/XNWeAg.png) + +### 3. 下载应用 + +- 绿色勾号 = 构建成功 +- 点击工作流名称查看详情 +- 在 `Artifacts` 部分下载应用 + +![构建成功](https://gw.alipayobjects.com/zos/k/dd/QaGees.png) + +### 4. 构建时间 + +- **首次运行**:约 10-15 分钟(建立缓存) +- **后续运行**:约 5 分钟(使用缓存) +- 缓存大小:完成时为 400-600MB + +## 提示 + +- 首次运行需要耐心等待,让缓存完全建立 +- 建议网络连接稳定 +- 如果构建失败,删除缓存后重试 + +## 链接 + +- [CLI 文档](cli-usage_CN.md) +- [高级用法](advanced-usage_CN.md) diff --git a/tests/README.md b/docs/testing.md similarity index 100% rename from tests/README.md rename to docs/testing.md