菜单

依赖项

相关源文件

本页介绍了 ChatGPT 桌面应用程序使用的第三方依赖项。它涵盖了前端依赖项(JavaScript/TypeScript 包)和后端依赖项(Rust crate),并解释了它们在系统架构中的用途和作用。

前端依赖

ChatGPT 桌面应用程序的前端使用 React 构建,并利用各种 NPM 包提供功能。

React 生态系统

依赖项版本目的
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键盘快捷键管理

来源:package.json12-21

Tauri 集成

依赖项版本目的
@tauri-apps/api2.0.0-beta.15用于与 Tauri 后端交互的 JavaScript API
@tauri-apps/plugin-os2.0.0-beta.7操作系统信息和功能
@tauri-apps/plugin-shell2.0.0-beta.8Shell 命令执行

来源:package.json12-21

UI 工具

依赖项版本目的
clsx^2.1.1用于构建 CSS 类字符串的实用工具
lodash^4.17.21JavaScript 实用工具库

来源:package.json12-21

后端依赖

后端使用 Rust 和 Tauri 框架构建,Tauri 提供了 Web UI 和原生功能之间的桥梁。

Tauri 框架

依赖项版本目的
tauri2.0.0-beta核心 Tauri 框架
tauri-build2.0.0-betaTauri 的构建工具
tauri-plugin-shell2.0.0-betaShell 命令执行
tauri-plugin-dialog2.0.0-beta原生对话框功能
tauri-plugin-os2.0.0-beta.4操作系统信息和功能

来源:src-tauri/Cargo.toml13-29

系统集成

依赖项版本目的
tokio1.37.0Rust 的异步运行时
dark-light1.1.1系统主题检测
semver1.0.23语义版本控制支持

来源:src-tauri/Cargo.toml13-29

实用工具库

依赖项版本目的
serde1.*序列化/反序列化框架
serde_json1.*serde 的 JSON 支持
once_cell1.19.0惰性静态变量和初始化工具
log0.4.21日志基础架构
anyhow1.0.83错误处理工具
regex1.10.4正则表达式支持

来源:src-tauri/Cargo.toml13-29

开发依赖项

该项目使用多种开发依赖项来构建和打包应用程序。

前端开发

依赖项版本目的
@tauri-apps/cli2.0.0-beta.22Tauri 命令行界面
typescript^5.4.5TypeScript 编译器
vite^5.2.11前端构建工具和开发服务器
tailwindcss^3.4.3实用优先 CSS 框架
postcss^8.4.38CSS 转换工具
autoprefixer^10.4.19用于 CSS 兼容性的 PostCSS 插件

来源:package.json23-37

按层级的依赖流

下图展示了应用程序架构中不同层级之间的依赖关系。

来源:package.json12-21 src-tauri/Cargo.toml13-29

前端依赖项详解

下图展示了前端依赖项之间的关系以及它们如何相互交互。

来源:package.json12-21

后端依赖项详解

下图展示了后端依赖项之间的关系以及它们如何支持 Tauri 框架。

来源:src-tauri/Cargo.toml13-29

跨层命令流及其依赖项

此图说明了命令如何在前端和后端之间流动,并重点介绍了此过程中涉及的依赖项。

来源:package.json12-21 src-tauri/Cargo.toml13-29

构建系统依赖项

此图显示了构建系统依赖项如何协同工作以创建最终应用程序。

来源:package.json23-37 src-tauri/Cargo.toml13-14

依赖项与多 Webview 架构

此图说明了依赖项如何支持 ChatGPT 桌面应用程序的多 Webview 架构。

来源:package.json12-21 src-tauri/Cargo.toml16-17

本页概述了 ChatGPT 桌面应用程序中使用的依赖项,以及它们如何在前端和后端层之间进行交互。该应用程序利用 Tauri 框架,使用 React 作为前端,Rust 作为原生功能,从而创建跨平台的桌面体验。