安装、启动与首次使用
本页说明 OneDocs 从开发环境准备到首次运行的完整路径,覆盖 Web 开发服务器、Tauri 桌面端、Android 开发与构建,以及首次使用时的本地状态重置方式。
Purpose and Scope
本页面向需要从源码运行或构建 OneDocs 的开发者与维护者,重点解释:
- 运行所需的 Node.js/npm、Rust/Tauri CLI,以及 Android 构建所需的 SDK/NDK;
package.json中定义的安装、开发、预览、桌面构建和 Android 构建脚本;- Web、桌面端与 Android 入口之间的关系;
- 首次启动后的开发验证方式,以及如何通过浏览器 DevTools 清理本地引导状态。
本页不展开 PDF 解析、模型供应商配置、分析提示词或具体功能页面的实现;这些属于独立的业务能力。Android 的完整签名、环境变量和平台细节也不在此重复,详细步骤应以 Android 构建指南 为准。
Overview
OneDocs 是一个 React + TypeScript 前端应用,使用 Vite 作为开发与构建工具,并通过 Tauri v2 将前端包装为桌面应用和 Android 应用。源码仓库将三类使用方式统一到 npm scripts:npm run dev 用于浏览器开发,npm run tauri:dev 用于桌面端开发,npm run android:dev 用于 Android 开发。
首次使用的关键原则是先安装依赖,再选择运行目标:
- 仅验证前端界面时使用 Vite 开发服务器;
- 需要桌面能力时使用 Tauri 开发命令;
- 需要移动端布局或原生 Android 容器时初始化并运行 Android 项目;
- 修改代码后先执行构建脚本进行 TypeScript 检查与生产构建,再进行平台打包。
仓库 README 还明确 OneDocs 支持本地运行,项目简介声明文件不会上传;但本页只记录安装与启动链路,不把该产品行为扩展为未经实现代码验证的安全保证。
Architecture
图中的关系来自仓库的项目结构、技术栈说明、环境要求和 npm scripts:src/ 承载 React + TypeScript 前端,src-tauri/ 承载 Tauri 桌面壳;Vite 负责 Web 开发与构建,Tauri CLI 负责桌面及 Android 命令。Android 节点额外依赖 Android SDK + NDK,而 Web 运行不要求 Rust 工具链。
首次启动决策
| 目标 | 需要的主要环境 | 命令 | 结果 |
|---|---|---|---|
| Web 开发 | Node.js、npm | npm run dev | 启动 Vite Web 开发服务器 |
| 桌面开发 | Node.js、npm、Rust、Tauri CLI | npm run tauri:dev | 以 Tauri 开发模式运行桌面应用 |
| Android 初始化 | Node.js、npm、Tauri CLI、Android 工具链 | npm run android:init | 初始化 Android 项目,仅需一次 |
| Android 开发 | 已完成初始化的 Android 项目与 Android 工具链 | npm run android:dev | 运行 Android 开发模式 |
| 生产 Web 构建 | Node.js、npm | npm run build | 先执行 tsc,再执行 vite build |
| 桌面发行版 | Node.js、npm、Rust、Tauri CLI | npm run tauri:build | 构建 Tauri 桌面安装包 |
Source: README.md
Tauri 版本约束
仓库要求使用已验证的精确版本组合,而不是继续使用 ^ 自动漂移版本。README 给出的关键约束是:Tauri CLI/API 使用 2.6.0,Tauri Rust crate 使用 =2.6.0,运行时使用 =2.9.2,官方插件也分别固定在指定版本。升级 Tauri 时,需要保持 npm 与 Rust 端处于同一代并重新验证;这说明版本一致性是启动和打包链路的一项前置条件。
安装与启动的最小路径
npm install
npm run devnpm install 根据 package.json 安装 React、Vite、Tauri API 和其他运行依赖;随后 npm run dev 调用 Vite 的开发服务器。若目标是桌面端,将第二条命令替换为 npm run tauri:dev,但此时必须额外满足 Rust 与 Tauri CLI 的环境要求。
Source: README.md
1{
2 "scripts": {
3 "dev": "vite",
4 "build": "tsc && vite build",
5 "preview": "vite preview",
6 "tauri:dev": "tauri dev",
7 "tauri:build": "tauri build",
8 "android:init": "tauri android init",
9 "android:dev": "tauri android dev",
10 "android:build": "tauri android build",
11 "android:build:split": "tauri android build -- --split-per-abi"
12 }
13}Source: package.json