You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
+
5
+
## Project Overview
6
+
7
+
SPlayer is a desktop music player built with **Electron + Vue 3 + TypeScript**. It uses Naive UI for components, Pinia for state management, and integrates with NetEase Cloud Music API, Last.fm, and Subsonic/Navidrome streaming services. Native Rust modules provide OS-level features (taskbar lyrics on Windows, MPRIS on Linux, SMTC on Windows, Discord RPC).
8
+
9
+
## Commands
10
+
11
+
```bash
12
+
pnpm dev # Start dev environment (builds native modules + launches Electron)
13
+
pnpm build # Full production build (typecheck + electron-vite build)
14
+
pnpm build:win # Package for Windows
15
+
pnpm build:mac # Package for macOS
16
+
pnpm build:linux # Package for Linux
17
+
pnpm lint # ESLint (--max-warnings=0, zero tolerance)
18
+
pnpm format # Prettier
19
+
pnpm typecheck # Full TypeScript check (node + web)
20
+
pnpm typecheck:node # Main process + preload TypeScript check
21
+
pnpm typecheck:web # Renderer process TypeScript check
22
+
```
23
+
24
+
Set `SKIP_NATIVE_BUILD=true` to skip Rust native module compilation during dev.
25
+
26
+
## Architecture
27
+
28
+
### Process Model (Electron)
29
+
30
+
-**Main process** (`electron/main/`): Window management, IPC handlers, SQLite database, system tray, global shortcuts, Fastify API server, native module integration
31
+
-**Preload** (`electron/preload/`): Context bridge exposing `window.api.store` and `window.logger` to renderer
0 commit comments