WPM(WinuxCmd Package Manager)的图形前端。薄壳客户端:自身不实现任何包管理逻辑,读操作消费 wpm --json 的机器可读输出,变更操作直接 spawn wpm install ... 执行并流式展示进度。
┌──────────┐ spawn + JSON ┌─────────────┐ ┌──────────────────┐
│ wpm-gui │ ──────────────► │ wpm.exe │ ───► │ index.json (源) │
│ (Tauri) │ ◄────────────── │ --json 契约 │ │ usr\bin / opt\ │
└──────────┘ exit code/事件 └─────────────┘ └──────────────────┘
- JSON 契约:
unixwin/wpm-source的docs/index-schema.md(所有载荷带schema: 1,只增不改)。 - 已消费:
list/search/info/categories/installed/index status/links list。 - 变更:
install(进度经 Tauri 事件流式转发,退出码为准)。
前端产物(Vite → dist/)在编译期由 Tauri 通过 generate_context! 嵌入可执行文件,运行时不从磁盘加载任何资源;WebView2 为系统组件。bundle.targets: [] 表示不产出安装器,tauri build 的产物就是一个自包含的便携 exe——未来作为 wpm 包(flat/shim 布局)分发。
- 环境变量
WPM_GUI_WPM - 与 wpm-gui.exe 同目录(经 wpm 安装后同在
usr\bin) PATH
依赖:Rust(MSVC)、Node 22+、pnpm。
pnpm install
pnpm tauri dev # 开发窗口
pnpm check # svelte-check 类型检查
pnpm tauri build # 产物: src-tauri/target/release/wpm-gui.exe调试时若 wpm 不在 PATH:
$env:WPM_GUI_WPM = "D:\path\to\winuxcmd\build-vs\wpm.exe"src/ Svelte 5 + TypeScript 前端
src-tauri/ Rust 后端(wpm 进程编排 + IPC commands)
scripts/ gen_icon.py 等工具