从源码构建 QzoneArchive——开发环境搭建
前置要求
从源码构建需要准备:
| 工具 | 最低版本 | 说明 |
|---|---|---|
| Rust | 1.77+ | 推荐用 rustup 安装 |
| Node.js | 20+ | 推荐用 nvm 管理版本 |
| npm | 随 Node.js 安装 | 或用 pnpm / yarn |
平台特定要求:
| 平台 | 额外依赖 |
|---|---|
| Windows | WebView2(Windows 10+ 自带)、MSVC 构建工具 |
| macOS | Xcode Command Line Tools |
| Linux | 见 Tauri 官方的 Linux 开发依赖(webkit2gtk 等) |
| Android | Android Studio + SDK + NDK |
快速开始
# 克隆仓库
git clone https://github.com/Gaoshu705/QzoneArchive.git
cd QzoneArchive
# 安装依赖
npm install
# 启动开发模式(前端热重载 + Rust 后端调试)
npm run tauri dev
两条命令就能把开发环境跑起来。开发模式下:
- 前端代码改动 → 自动热更新(秒级生效)
- Rust 后端改动 → 自动重新编译(可能需要几十秒)
- 可以用浏览器开发者工具检查前端、用 Rust 调试器调试后端
各平台构建命令
# Windows NSIS 安装包
npm run tauri:build:windows
# Windows MSI + NSIS(两个都打)
npm run tauri:build:windows:all
# macOS
npm run tauri:build:macos
# Android APK
npm run tauri android build
# Linux(构建 .deb / .AppImage 等)
npm run tauri:build
项目目录结构(源码侧)
QzoneArchive/
├── src-tauri/ # Rust 后端代码
│ ├── src/
│ │ ├── main.rs # 入口
│ │ ├── archive/ # 归档任务逻辑
│ │ ├── db/ # SQLite 操作
│ │ └── qq/ # QQ 空间接口封装
│ └── Cargo.toml
├── src/ # Vue 前端代码
│ ├── views/ # 页面组件
│ ├── stores/ # Pinia 状态
│ ├── lib/ # 工具函数
│ └── App.vue
├── package.json
└── vite.config.ts
Nix Flake
项目还提供了 Nix Flake,适合 NixOS 用户或想在隔离环境里构建的场景:
# 进入项目目录后
nix build ./result/bin/qzonearchive
# 或安装到用户 profile
nix profile install .#qzonearchive