4 项目结构
2 分钟阅读
一个 Tauri 项目通常由两部分组成:一个 Rust 项目和一个 JavaScript 项目(可选),典型的目录结构大致如下:
.
├── 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.conf.json是 Tauri 的主配置文件,其中包含从应用标识符到开发服务器 URL 的所有内容。该文件也是 Tauri CLI 用来定位 Rust 项目的标记文件。若要进一步了解,请参阅 Tauri 配置。capabilities/目录是 Tauri 默认读取能力文件的文件夹(简而言之,你需要在这里允许某些命令,才能在 JavaScript 代码中使用它们)。若要进一步了解,请参阅安全。icons/目录是tauri icon命令的默认输出目录,通常在tauri.conf.json > bundle > icon中被引用,并用作应用的图标。build.rs包含tauri_build::build(),用于 Tauri 的构建系统。src/lib.rs包含 Rust 代码和移动端入口点(即以#[cfg_attr(mobile, tauri::mobile_entry_point)]标记的函数)。我们不直接在main.rs中编写代码,是因为在移动端构建时会把你的应用编译成一个库,并通过平台框架加载它。src/main.rs是桌面端的主入口点,我们在main中运行app_lib::run(),以使用与移动端相同的入口点。因此为简单起见,请不要修改这个文件,而是修改lib.rs。注意,app_lib对应 Cargo.toml 中的[lib.name]。
Tauri 的工作方式类似于静态 Web 托管:构建时会先把你的 JavaScript 项目编译成静态文件,然后编译 Rust 项目并把那些静态文件打包进去。因此 JavaScript 项目的配置方式与构建一个静态网站基本相同。若要进一步了解,请参阅前端配置。
如果你只想使用 Rust 代码,只需删除其它所有内容,并将 src-tauri/ 文件夹作为顶层项目,或作为你的 Rust 工作区的一个成员。