# Tauri Sidecar Shell for Nitro 这是一个纯 Tauri 壳项目,用于将 Nitro 全栈应用打包成桌面应用。 ## 📁 项目结构 ``` tauri-demo/ ├── src-tauri/ # Tauri 后端(Rust) │ ├── src/ │ │ └── lib.rs # 主逻辑:启动 Nitro sidecar │ ├── binaries/ │ │ └── nitro-server-x86_64-pc-windows-msvc.exe # Nitro 二进制文件 │ ├── Cargo.toml # Rust 依赖 │ ├── tauri.conf.json # Tauri 配置 │ └── capabilities/ # 权限配置 ├── package.json # 只包含 @tauri-apps/cli └── TAURI_API_IN_NITRO.md # 如何在 Nitro 项目中使用 Tauri API ``` **注意**:没有前端代码!前端来自你的 Nitro 应用。 ## 🚀 使用方法 ### 1. 准备 Nitro 二进制文件 在你的 Nitro 项目中打包: ```bash bun build --compile --outfile nitro-server ``` ### 2. 放置到 Tauri 项目 ```bash # Windows cp nitro-server.exe tauri-demo/src-tauri/binaries/nitro-server-x86_64-pc-windows-msvc.exe # macOS (Intel) cp nitro-server tauri-demo/src-tauri/binaries/nitro-server-x86_64-apple-darwin # macOS (Apple Silicon) cp nitro-server tauri-demo/src-tauri/binaries/nitro-server-aarch64-apple-darwin # Linux cp nitro-server tauri-demo/src-tauri/binaries/nitro-server-x86_64-unknown-linux-gnu ``` ### 3. 开发测试 ```bash bun run dev # 或 bun run tauri dev ``` ### 4. 打包发布 ```bash bun run build # 或 bun run tauri build ``` 输出在:`src-tauri/target/release/` ## 🔧 工作原理 1. **Tauri 启动** → 检测可用端口(默认 3000) 2. **启动 Nitro sidecar** → 通过环境变量 `NITRO_PORT` 传递端口 3. **监听 stdout** → 等待 Nitro 输出 `"Listening on:"` 确认启动 4. **创建窗口** → 加载 `http://localhost:{port}` 5. **应用退出时** → 自动终止 Nitro 进程 ## 📦 在 Nitro 项目中使用 Tauri API 在你的 Nitro 项目中: ```bash bun add @tauri-apps/api ``` 然后直接使用: ```typescript import { invoke } from '@tauri-apps/api/core'; // 调用 Rust 命令 const result = await invoke('greet', { name: '张三' }); ``` 详细文档:[TAURI_API_IN_NITRO.md](./TAURI_API_IN_NITRO.md) ## ⚙️ 配置说明 ### 修改窗口标题/大小 编辑 `src-tauri/src/lib.rs`: ```rust .title("你的应用名称") .inner_size(1200.0, 800.0) // 宽度 x 高度 ``` ### 修改端口范围 编辑 `src-tauri/src/lib.rs`: ```rust let port = find_available_port(3000).await; // 从 3000 开始查找 ``` ### 修改启动超时时间 编辑 `src-tauri/src/lib.rs`: ```rust let timeout = Duration::from_secs(5); // 5 秒超时 ``` ## 📝 常见问题 ### Q: 为什么没有前端代码? A: 前端完全由你的 Nitro 应用提供,Tauri 只是一个壳。 ### Q: 如何调试? A: 运行 `bun run dev`,查看控制台输出: - `使用端口: 3000` - `Nitro: ➜ Listening on: ...` - `✓ Nitro 服务器启动成功!` ### Q: 打包后体积多大? A: 约 3-5MB(Tauri 壳)+ 你的 Nitro 二进制文件大小 ### Q: 如何添加图标? A: 替换 `src-tauri/icons/` 目录下的图标文件 ## 🎯 核心优势 - ✅ **轻量**:比 Electron 小 30-40 倍 - ✅ **简单**:无需学 Rust,只需配置 - ✅ **原生**:使用系统 WebView,性能好 - ✅ **灵活**:Nitro 应用可以独立开发和测试