Skip to content

本地构建

本地构建

前置依赖

开发命令

Terminal window
# 安装前端依赖
npm install
# 启动开发环境(前端 + Tauri 桌面窗口)
npm run tauri dev
# 仅启动前端开发服务器
npm run dev
# 类型检查
npm run typecheck
# 构建桌面便携版
npm run build:portable
# 构建 GitHub 发布版(含签名与 latest.json)
npm run build:github-release

构建产物

命令产物用途
npm run build:portablerelease-portable/niko-buddy.exe便携版(单文件),免安装
npm run build:github-releaserelease-github/ 下全套资产GitHub Release 上传

GitHub Release 产物包含:

  • niko-buddy_<version>_windows_X64.exe — NSIS 安装包
  • niko-buddy_<version>_windows_X64.exe.sig — 更新签名
  • niko-buddy_<version>_windows_X64_portable.exe — 便携版(单文件)
  • latest.json — Tauri Updater 更新清单

(资产命名以 RELEASING.md 的「资产命名(唯一规范)」为准,禁止 QMaiWrite_* / Niko.Buddy_* 前缀。)

签名密钥

GitHub 发布版构建需要 Tauri 签名私钥,默认路径 ~/.tauri/qmai-updater.key(唯一回退定义在 scripts/prepare-github-release.mjs,P2-3 起双写清偿)。也可通过环境变量 TAURI_SIGNING_PRIVATE_KEY_PATH 与 TAURI_SIGNING_PRIVATE_KEY_PASSWORD 指定。

构建脚本 build:portable / build:github-release 由 scripts/build-release-env.mjs 编排(P2-3:原 package.json 内联 PowerShell 块已下沉 Node 侧,退出码经 spawnSync 传播)。

代码规范

  • 前端代码使用 TypeScript 严格模式
  • Commit Message 遵循 Conventional Commits 规范
  • 新功能在 src/lib/novel/ 中集中实现,避免散落到无关模块
  • Rust 代码遵循 cargo fmt 和 cargo clippy 标准

项目结构

Niko Buddy/
├── src/ # 前端源码(components / lib / stores / i18n / commands)
├── src-tauri/ # Rust 后端
├── skills/ # 角色 SKILL 数据(运行时资源)
├── extension/ # 浏览器剪藏扩展
├── scripts/ # 构建与发布脚本
├── docs-site/ # 本文档站源码(Astro + Starlight)
├── .github/workflows/ # CI/CD 工作流
├── package.json
└── vite.config.ts