- 删除了项目入口HTML文件中的所有内容和结构 - 删除启动加载页面文件 - 更新项目脚本和依赖项以使用 Tauri 命令替代 Vite 相关配置 - 更新 README 文档,详细说明基于 Tauri 的 Nitro 全栈应用桌面化方案,包括项目结构、使用步骤、工作原理、API 调用方式及配置说明。 - 移除启动时的加载窗口逻辑,直接创建并显示主窗口 - 删除项目中的 Tauri 图标文件 - 删除已废弃的 TypeScript 图标文件 - 删除项目中的Vite图标文件 - 删除主入口文件中的问候功能相关代码 - 删除了项目中的全局样式文件,移除了所有自定义的CSS样式规则和主题配置。 - 删除 TypeScript 配置文件中的编译选项和包含路径配置 - 删除旧的Vite配置文件以移除过时的Tauri开发服务器设置
144 lines
3.3 KiB
Markdown
144 lines
3.3 KiB
Markdown
# 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 应用可以独立开发和测试
|