imbytecat f22e7d400f refactor: 移除Vite相关配置并全面转向Tauri桌面化方案
- 删除了项目入口HTML文件中的所有内容和结构
- 删除启动加载页面文件
- 更新项目脚本和依赖项以使用 Tauri 命令替代 Vite 相关配置
- 更新 README 文档,详细说明基于 Tauri 的 Nitro 全栈应用桌面化方案,包括项目结构、使用步骤、工作原理、API 调用方式及配置说明。
- 移除启动时的加载窗口逻辑,直接创建并显示主窗口
- 删除项目中的 Tauri 图标文件
- 删除已废弃的 TypeScript 图标文件
- 删除项目中的Vite图标文件
- 删除主入口文件中的问候功能相关代码
- 删除了项目中的全局样式文件,移除了所有自定义的CSS样式规则和主题配置。
- 删除 TypeScript 配置文件中的编译选项和包含路径配置
- 删除旧的Vite配置文件以移除过时的Tauri开发服务器设置
2026-01-16 20:26:25 +08:00
2026-01-16 19:32:21 +08:00
2026-01-16 19:32:21 +08:00
2026-01-16 19:32:21 +08:00
2026-01-16 19:32:21 +08:00

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/

🔧 工作原理

  1. Tauri 启动 → 检测可用端口(默认 3000
  2. 启动 Nitro sidecar → 通过环境变量 NITRO_PORT 传递端口
  3. 监听 stdout → 等待 Nitro 输出 "Listening on:" 确认启动
  4. 创建窗口 → 加载 http://localhost:{port}
  5. 应用退出时 → 自动终止 Nitro 进程

📦 在 Nitro 项目中使用 Tauri API

在你的 Nitro 项目中:

bun add @tauri-apps/api

然后直接使用:

import { invoke } from '@tauri-apps/api/core';

// 调用 Rust 命令
const result = await invoke('greet', { name: '张三' });

详细文档:TAURI_API_IN_NITRO.md

⚙️ 配置说明

修改窗口标题/大小

编辑 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,查看控制台输出:

  • 使用端口: 3000
  • Nitro: ➜ Listening on: ...
  • ✓ Nitro 服务器启动成功!

Q: 打包后体积多大?

A: 约 3-5MBTauri 壳)+ 你的 Nitro 二进制文件大小

Q: 如何添加图标?

A: 替换 src-tauri/icons/ 目录下的图标文件

🎯 核心优势

  • 轻量:比 Electron 小 30-40 倍
  • 简单:无需学 Rust只需配置
  • 原生:使用系统 WebView性能好
  • 灵活Nitro 应用可以独立开发和测试
Description
No description provided
Readme 384 KiB
Languages
Rust 100%