项目结构(Project Structure)
一个 Tauri 项目通常由两部分组成:
- Rust 项目
- JavaScript 项目(可选)
一个典型的项目结构如下: ([Tauri][1])
.
├── package.json
├── index.html
├── src/
│ ├── main.js
├── src-tauri/
│ ├── Cargo.toml
│ ├── Cargo.lock
│ ├── build.rs
│ ├── tauri.conf.json
│ ├── src/
│ │ ├── main.rs
│ │ └── lib.rs
│ ├── icons/
│ │ ├── icon.png
│ │ ├── icon.icns
│ │ └── icon.ico
│ └── capabilities/
│ └── default.json
在这种结构中:
- JavaScript 项目位于项目顶层
- Rust 项目位于
src-tauri/目录中
Rust 项目本质上是一个 标准 Cargo 项目,只是增加了一些 Tauri 相关文件。 ([Tauri][1])
关键文件说明
tauri.conf.json
这是 Tauri 的主配置文件。
该文件包含:
- 应用程序 Identifier
- 开发服务器 URL
- 打包配置
- 应用窗口配置
- 图标配置
- 安全权限配置
同时:
该文件也是 Tauri CLI 用于识别 Rust 项目的标记文件。 ([Tauri][1])
capabilities/
该目录用于存放 Capability 文件(能力权限配置)。
简单来说:
如果你希望 JavaScript 代码调用 Rust 命令或系统能力, 需要在这里 显式允许对应权限。 ([Tauri][1])
示例:
src-tauri/capabilities/default.json
常见能力包括:
- 文件系统
- 剪贴板
- shell
- window API
icons/
该目录存放 应用程序图标。
通常由以下命令生成:
tauri icon
生成的图标包括:
icon.png
icon.icns
icon.ico
这些图标会在配置文件中引用:
tauri.conf.json > bundle > icon
用于:
- Windows 应用图标
- macOS 应用图标
- Linux 应用图标。 ([Tauri][1])
build.rs
该文件属于 Rust 构建脚本。
其中包含:
tauri_build::build()
该函数用于:
- 处理 Tauri 构建流程
- 生成资源
- 配置编译行为。 ([Tauri][1])
src/lib.rs
这里包含:
- Rust 后端代码
- 移动端入口函数
移动端入口函数标记如下:
#[cfg_attr(mobile, tauri::mobile_entry_point)]
为什么不直接写在 main.rs?
因为:
在移动端构建时,应用会被编译成 Rust library(库),然后由平台框架加载。 ([Tauri][1])
src/main.rs
这是 桌面端的入口文件(Desktop Entry Point)。
其主要作用是调用:
app_lib::run()
从而使用 与移动端相同的入口逻辑。
官方建议:
不要修改
main.rs,而是修改lib.rs。 ([Tauri][1])
说明:
app_lib
对应 Cargo.toml 中:
[lib]
name = "app_lib"
Tauri 的构建方式
Tauri 的工作方式类似于 静态 Web Host(静态网站托管)。
构建流程如下:
1️⃣ 先编译 JavaScript 前端项目 → 生成 静态文件
例如:
dist/
index.html
assets/
2️⃣ 再编译 Rust 项目
Rust 会:
- 将前端静态资源 打包进应用
- 生成 桌面或移动应用程序
因此:
JavaScript 项目的结构基本和 普通 Web 项目完全一样。 ([Tauri][1])
仅使用 Rust 项目
如果你只想写 Rust 应用:
可以:
- 删除 JavaScript 项目
- 直接使用
src-tauri/
作为:
- 顶层项目 或
- Rust Workspace 的成员。 ([Tauri][1])
下一步(Next Steps)
建议继续阅读:
- Frontend Configuration(前端配置)
- Tauri CLI Reference
- Develop your Tauri app
- Tauri 扩展功能
