Skip to content

项目结构

灵动桌面框架采用前后端分离的目录结构,前端代码在 src/,后端代码在 src-tauri/

完整目录

my-app/
├── index.html                    # HTML 入口
├── package.json                  # 前端依赖
├── vite.config.ts                # Vite 配置(路径别名 @/)
├── tsconfig.json                 # TypeScript 配置

├── src/                          # ★ 前端源码 (React 19)
│   ├── main.tsx                  # React 入口
│   ├── App.tsx                   # 根组件(主题 + 路由)
│   ├── Router.tsx                # 路由配置 (HashRouter)
│   ├── theme/                    # 主题配置
│   │   └── antdTheme.ts          # Ant Design 暗/亮主题
│   ├── styles/                   # 全局样式
│   │   ├── variables.css         # CSS 设计令牌
│   │   └── global.css            # TailwindCSS 全局样式
│   ├── store/                    # Zustand 状态管理
│   │   ├── app.ts                # UI 状态(主题/侧边栏)
│   │   ├── settings.ts           # 设置状态(持久化)
│   │   └── index.ts              # 统一导出
│   ├── types/                    # TypeScript 类型
│   │   ├── config.ts             # 配置相关类型
│   │   ├── system.ts             # 系统信息类型
│   │   └── index.ts              # 统一导出
│   ├── hooks/                    # 自定义 Hooks
│   │   └── useCommand.ts         # invoke 封装 + 错误处理
│   ├── lib/                      # 工具库
│   │   └── api/                  # API 封装
│   │       ├── client.ts         # invoke 基础包装
│   │       ├── config.ts         # 配置 API
│   │       ├── system.ts         # 系统 API
│   │       ├── updater.ts        # 更新 API
│   │       └── index.ts          # 统一导出
│   ├── components/               # 通用组件
│   │   ├── ui/                   # UI 组件
│   │   │   └── ErrorBoundary.tsx # 错误边界
│   │   └── layout/               # 布局组件
│   │       ├── AppLayout.tsx     # 主布局
│   │       └── Sidebar.tsx       # 侧边栏
│   └── pages/                    # 页面组件
│       ├── home/index.tsx        # 首页
│       ├── settings/index.tsx    # 设置页
│       └── about/index.tsx       # 关于页

├── src-tauri/                    # ★ 后端源码 (Rust)
│   ├── Cargo.toml                # Rust 依赖
│   ├── tauri.conf.json           # Tauri 核心配置
│   ├── build.rs                  # 构建脚本
│   ├── capabilities/             # 权限声明
│   │   └── default.json          # 默认权限集
│   ├── icons/                    # 应用图标
│   └── src/
│       ├── main.rs               # Rust 进程入口
│       ├── lib.rs                # Builder 中枢(注册插件/命令/状态)
│       ├── error.rs              # 错误类型定义
│       ├── state.rs              # 全局状态(AppState + Database)
│       ├── tray.rs               # 系统托盘
│       ├── models/               # 数据模型
│       │   └── mod.rs            # 结构体定义
│       ├── database/             # 数据访问层
│       │   ├── mod.rs            # Database + CRUD
│       │   └── schema.rs         # Schema 迁移
│       ├── services/             # 业务逻辑层
│       │   ├── mod.rs            # 模块导出
│       │   └── config.rs         # 配置服务
│       ├── commands/             # IPC 命令层
│       │   ├── mod.rs            # 命令导出
│       │   ├── system.rs         # 系统命令
│       │   └── config.rs         # 配置命令
│       └── shared/               # 工具函数
│           ├── mod.rs
│           └── time_utils.rs

└── public/                       # 静态资源

关键文件说明

src-tauri/tauri.conf.json

Tauri 核心配置,控制窗口尺寸、打包参数、安全策略等。

src-tauri/capabilities/default.json

权限声明文件,定义应用可以使用哪些系统 API(Tauri 2.x 强制要求)。

src/lib/api/

所有前端到后端的调用都封装在这里,禁止在页面中直接使用 invoke()

vite.config.ts

配置了 @/ 路径别名,指向 src/ 目录。

基于 Tauri 2.x 构建的企业级桌面应用开发框架