本页介绍了 ChatGPT 桌面应用程序使用的第三方依赖项。它涵盖了前端依赖项(JavaScript/TypeScript 包)和后端依赖项(Rust crate),并解释了它们在系统架构中的用途和作用。
ChatGPT 桌面应用程序的前端使用 React 构建,并利用各种 NPM 包提供功能。
| 依赖项 | 版本 | 目的 |
|---|---|---|
| react | ^18.3.1 | 用于 UI 组件的核心 React 库 |
| react-dom | ^18.3.1 | 用于 Web 浏览器的 React 渲染 |
| react-router-dom | ^6.23.0 | 用于导航的路由库 |
| react-hotkeys-hook | ^4.5.0 | 键盘快捷键管理 |
| 依赖项 | 版本 | 目的 |
|---|---|---|
| @tauri-apps/api | 2.0.0-beta.15 | 用于与 Tauri 后端交互的 JavaScript API |
| @tauri-apps/plugin-os | 2.0.0-beta.7 | 操作系统信息和功能 |
| @tauri-apps/plugin-shell | 2.0.0-beta.8 | Shell 命令执行 |
| 依赖项 | 版本 | 目的 |
|---|---|---|
| clsx | ^2.1.1 | 用于构建 CSS 类字符串的实用工具 |
| lodash | ^4.17.21 | JavaScript 实用工具库 |
后端使用 Rust 和 Tauri 框架构建,Tauri 提供了 Web UI 和原生功能之间的桥梁。
| 依赖项 | 版本 | 目的 |
|---|---|---|
| tauri | 2.0.0-beta | 核心 Tauri 框架 |
| tauri-build | 2.0.0-beta | Tauri 的构建工具 |
| tauri-plugin-shell | 2.0.0-beta | Shell 命令执行 |
| tauri-plugin-dialog | 2.0.0-beta | 原生对话框功能 |
| tauri-plugin-os | 2.0.0-beta.4 | 操作系统信息和功能 |
| 依赖项 | 版本 | 目的 |
|---|---|---|
| tokio | 1.37.0 | Rust 的异步运行时 |
| dark-light | 1.1.1 | 系统主题检测 |
| semver | 1.0.23 | 语义版本控制支持 |
| 依赖项 | 版本 | 目的 |
|---|---|---|
| serde | 1.* | 序列化/反序列化框架 |
| serde_json | 1.* | serde 的 JSON 支持 |
| once_cell | 1.19.0 | 惰性静态变量和初始化工具 |
| log | 0.4.21 | 日志基础架构 |
| anyhow | 1.0.83 | 错误处理工具 |
| regex | 1.10.4 | 正则表达式支持 |
该项目使用多种开发依赖项来构建和打包应用程序。
| 依赖项 | 版本 | 目的 |
|---|---|---|
| @tauri-apps/cli | 2.0.0-beta.22 | Tauri 命令行界面 |
| typescript | ^5.4.5 | TypeScript 编译器 |
| vite | ^5.2.11 | 前端构建工具和开发服务器 |
| tailwindcss | ^3.4.3 | 实用优先 CSS 框架 |
| postcss | ^8.4.38 | CSS 转换工具 |
| autoprefixer | ^10.4.19 | 用于 CSS 兼容性的 PostCSS 插件 |
下图展示了应用程序架构中不同层级之间的依赖关系。
来源:package.json12-21 src-tauri/Cargo.toml13-29
下图展示了前端依赖项之间的关系以及它们如何相互交互。
下图展示了后端依赖项之间的关系以及它们如何支持 Tauri 框架。
此图说明了命令如何在前端和后端之间流动,并重点介绍了此过程中涉及的依赖项。
来源:package.json12-21 src-tauri/Cargo.toml13-29
此图显示了构建系统依赖项如何协同工作以创建最终应用程序。
来源:package.json23-37 src-tauri/Cargo.toml13-14
此图说明了依赖项如何支持 ChatGPT 桌面应用程序的多 Webview 架构。
来源:package.json12-21 src-tauri/Cargo.toml16-17
本页概述了 ChatGPT 桌面应用程序中使用的依赖项,以及它们如何在前端和后端层之间进行交互。该应用程序利用 Tauri 框架,使用 React 作为前端,Rust 作为原生功能,从而创建跨平台的桌面体验。