# AGENTS.md — JRedisDesktop v2 ## Project identity Fork of [AnotherRedisDesktopManager](https://github.com/qishibo/AnotherRedisDesktopManager). The legacy Vue 2 codebase lives in `legacy/` and is gitignored. Work only in the root project. ## Stack - **Shell:** Electron 33 (`src/main/index.ts`) - **Preload:** `src/preload/index.ts` - **Renderer:** Vue 3 + Element Plus + Vue Router (`src/renderer/`) - **Build:** electron-vite + Vite 6 + TypeScript 5 - **Redis client:** ioredis 5 ## Commands ```bash npm run dev # electron-vite dev (HMR, renderer on :5173) npm run build # production build → out/ npm start # preview built app npm run build:unpack # build + electron-builder --dir npm run build:win # build + electron-builder --win npm run build:mac # build + electron-builder --mac npm run build:linux # build + electron-builder --linux ``` ## Architecture ``` Electron main (src/main/index.ts) ├── Dev: loads renderer dev server (Vite HMR) └── Prod: loads out/renderer/index.html └── Vue 3 SPA (src/renderer/) @renderer alias → src/renderer/src/ ``` ## Build config - `electron.vite.config.ts` defines three build targets: main, preload, renderer - Renderer dev server runs on port 5173 - Main/preload use `externalizeDepsPlugin()` to keep node_modules external ## TypeScript - Root `tsconfig.json` references `tsconfig.node.json` (main + preload) and `tsconfig.web.json` (renderer) - Node target includes `src/main/**/*`, `src/preload/**/*`, `electron.vite.config.ts` - Web target includes `src/renderer/**/*` - `@renderer` alias resolves to `src/renderer/src` ## Source layout (expected) ``` src/ ├── main/ # Electron main process ├── preload/ # Preload scripts └── renderer/ # Vue 3 app ├── index.html └── src/ ``` ## Legacy The `legacy/` directory contains the old Vue 2 + Webpack 4 codebase. It is gitignored and not part of the v2 build. See `legacy/AGENTS.md` for its documentation.