8180b30d3c89cc276526b7c8c68ed627b1b401c1
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 项目中打包:
bun build --compile --outfile nitro-server
2. 放置到 Tauri 项目
# 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. 开发测试
bun run dev
# 或
bun run tauri dev
4. 打包发布
bun run build
# 或
bun run tauri build
输出在:src-tauri/target/release/
🔧 工作原理
- Tauri 启动 → 检测可用端口(默认 3000)
- 启动 Nitro sidecar → 通过环境变量
NITRO_PORT传递端口 - 监听 stdout → 等待 Nitro 输出
"Listening on:"确认启动 - 创建窗口 → 加载
http://localhost:{port} - 应用退出时 → 自动终止 Nitro 进程
📦 在 Nitro 项目中使用 Tauri API
在你的 Nitro 项目中:
bun add @tauri-apps/api
然后直接使用:
import { invoke } from '@tauri-apps/api/core';
// 调用 Rust 命令
const result = await invoke('greet', { name: '张三' });
⚙️ 配置说明
修改窗口标题/大小
编辑 src-tauri/src/lib.rs:
.title("你的应用名称")
.inner_size(1200.0, 800.0) // 宽度 x 高度
修改端口范围
编辑 src-tauri/src/lib.rs:
let port = find_available_port(3000).await; // 从 3000 开始查找
修改启动超时时间
编辑 src-tauri/src/lib.rs:
let timeout = Duration::from_secs(5); // 5 秒超时
📝 常见问题
Q: 为什么没有前端代码?
A: 前端完全由你的 Nitro 应用提供,Tauri 只是一个壳。
Q: 如何调试?
A: 运行 bun run dev,查看控制台输出:
使用端口: 3000Nitro: ➜ Listening on: ...✓ Nitro 服务器启动成功!
Q: 打包后体积多大?
A: 约 3-5MB(Tauri 壳)+ 你的 Nitro 二进制文件大小
Q: 如何添加图标?
A: 替换 src-tauri/icons/ 目录下的图标文件
🎯 核心优势
- ✅ 轻量:比 Electron 小 30-40 倍
- ✅ 简单:无需学 Rust,只需配置
- ✅ 原生:使用系统 WebView,性能好
- ✅ 灵活:Nitro 应用可以独立开发和测试
Description
Languages
Rust
100%