免费获取学习方案
ARTICLE DETAIL

资讯详情

深耕编程基础知识与建站技术分享的一线实战洞察。

DeepSeek Harness 桌面端搭建记录,Tauri 2 封装 Web UI 的完整流程

DeepSeek Harness 桌面端搭建记录,Tauri 2 封装 Web UI 的完整流程 DeepSeek Harness 的 Web UI 默认跑在浏览器里对日常高频使用来说多开标签页、误关闭、服务手动启停这些琐事其实挺烦人。把它封装成桌面应用是个不错的思路而 Tauri 2 正好能在保持轻量的同时提供原生窗口能力。这篇记录一下我基于 Tauri 2 搭建 Harness 桌面端的完整过程从环境准备到打包产出尽量把踩过的坑写清楚。为什么选 Tauri 2 而不是 Electron一开始也考虑过 Electron但 Harness 本身已经是 Web 应用Tauri 2 的架构更贴合这种套壳场景。几个实际优势独立窗口管理1280×800 的固定窗口可缩放不再和浏览器标签混在一起服务自动启停应用启动时探测 3080 端口Harness 没跑的话自动拉起退出时干净停掉构建产物小最终安装包体积远小于 Electron 方案内存占用也更友好跨平台打包同一套源码可出 Windows 的.exe和 macOS 的.dmg核心思路很简单Tauri 负责窗口生命周期和本地服务编排Harness 的 Web UI 作为远程内容加载进来。环境准备这个项目同时需要 Rust 和 Node.js 两套工具链Windows 下还要额外注意 MSVC 工具链的完整性。Rust 工具链MSVCTauri 2 依赖 Rust stable且必须使用 MSVC 工具链而非 GNU。安装时选默认的x86_64-pc-windows-msvc即可。如果之前装过 Rust确认下当前工具链rustup show看到stable-x86_64-pc-windows-msvc就对了。cargo 建议配下国内镜像USTC 源在编译阶段能省不少时间# ~/.cargo/config.toml [source.crates-io] replace-with ustc [source.ustc] registry sparsehttps://mirrors.ustc.edu.cn/crates.io-index/VS Build Tools 2022这是 Windows 编译 Tauri 应用的硬性依赖主要提供 C 构建工具和 Windows SDK。从微软官网下载 Build Tools 安装器工作负载勾选使用 C 的桌面开发。已经装过 Visual Studio 2022 的确认下是否包含 MSVC v143 生成器和 Windows 11 SDK 即可。Node.js版本没有特别苛刻的要求LTS 就行。npm 同样建议换国内源npm config set registry https://registry.npmmirror.com项目结构与关键配置克隆桌面端仓库后核心文件就这几处deepseek-harness-desktop/ ├── harness.json # 服务启动配置随安装包分发 ├── src-tauri/ │ ├── tauri.conf.json # 应用元信息、打包配置 │ └── src/ │ ├── main.rs # 入口 │ └── lib.rs # 配置读取、服务拉起、窗口创建 └── dist/index.html # 前端占位实际加载外部 URLharness.json 配置详解这是整个自动化的核心放在 exe 同目录程序启动时优先读取它。一个典型配置{ url: http://127.0.0.1:3080, probeAddr: 127.0.0.1:3080, workingDir: D:/deepseek_harness/deepseek-harness-master, command: node, args: [ --import, tsx/esm, apps/cli/src/bin.ts, web ], startupTimeoutSecs: 60 }各字段的实际含义字段作用调整建议workingDirHarness 源码根目录的绝对路径根据你放 Harness 的位置修改注意 JSON 里反斜杠要转义成\\command/args启动服务的具体命令如果你用pnpm dsh web启动 Harness这里要对应调整startupTimeoutSecs等待服务就绪的最大秒数机械硬盘或老机器建议调到 90–120SSD 上 60 秒通常够用url/probeAddr探测和加载的地址一般保持默认除非改了 Harness 的启动端口重要项目根目录的harness.json是源文件修改后需要重新执行npm run tauri build才会被打进安装包。安装完成后直接改安装目录里的harness.json即可生效无需重新编译。Rust 侧的服务编排逻辑lib.rs里的核心流程启动时先探测probeAddr是否可达。如果 Harness 已经在运行直接加载 Web UI应用退出时也不碰它如果没运行按commandargs在后台拉起服务等url能响应了再创建窗口应用退出时只停掉自己拉起来的那个进程。这个设计很贴心避免了你手动pnpm dsh web启动后桌面端退出时误杀服务。构建与打包依赖装完后构建命令很直接npm install npm run tauri build首次构建需要下载编译 Rust 依赖USTC 镜像下大概 5–15 分钟取决于网络和设备性能。产物在src-tauri/target/release/bundle/下nsis/DeepSeek Harness_0.1.0_x64-setup.exe— 推荐带安装向导msi/*.msi— 适合企业静默部署首次构建常见报错error: linkerlink.exenot foundVS Build Tools 没装或环境变量没生效。重启终端或者从Developer Command Prompt for VS 2022里执行构建。failed to run custom build command 涉及windows-rs通常是 Windows SDK 版本不匹配确保安装了 10.0.19041.0 或更新的 SDK。Harness 服务拉不起来窗口显示无法连接先在普通终端手动跑通pnpm dsh web确认 Harness 本身能正常启动。如果手动都起不来检查 Node.js 版本是否满足 Harness 要求的 v22.19以及workingDir路径是否正确。自定义调整窗口尺寸改src-tauri/src/lib.rs里的inner_size和min_inner_size.window_builder(Window::new, main) .inner_size(1440.0, 900.0) // 默认打开尺寸 .min_inner_size(1024.0, 768.0) // 最小允许尺寸图标替换准备一张 1024×1024 的 PNG然后npm run tauri icon icon.png会自动生成全套尺寸并替换src-tauri/icons/下的文件。打包目标精简如果只需要 NSIS 安装包不需要 MSI改src-tauri/tauri.conf.json{ bundle: { targets: [nsis] } }构建时间会缩短一些产物也更干净。实际使用体验装好后双击启动窗口弹出前会有短暂的黑屏或白屏那是在等 Harness 服务就绪。如果之前已经手动启动了 Harness这个等待过程几乎感知不到。退出时观察任务管理器由桌面端拉起的 Node 进程会被干净清理而你自己提前开的pnpm dsh web不受影响这个边界处理得很到位。目前这套方案在我这边 Windows 11 上跑得很稳macOS 的.dmg打包理论上支持但需要到 macOS 机器上执行并且补一个icon.icns图标文件。整个项目做下来Tauri 2 的配置量比想象中少主要精力反而花在 Harness 本身的启动参数调优上。如果你也在找把 Harness 固定到桌面的方案这个路线值得试试。
返回列表