Skip to content

Latest commit

 

History

History
55 lines (47 loc) · 3.04 KB

File metadata and controls

55 lines (47 loc) · 3.04 KB

Project layout

avatar/
├── electron/
│   ├── main.cjs
│   ├── preload.cjs
│   ├── settingsStore.cjs
│   ├── thumbnails.cjs
│   ├── user-library.cjs
│   ├── vroid-oauth-server.cjs
│   ├── vroid-hub-auth.cjs
│   ├── vroid-hub-credentials.cjs
│   └── vroid-hub-client.cjs
├── public/
│   ├── AVATAR_LOGO_150.png
│   └── AVATAR_SPLASH.png
└── src/
    ├── assets/
    │   ├── avatars/
    │   │   ├── thumbs/          # committed picker portraits (npm run thumbs)
    │   │   └── VRMA/
    │   └── environments/
    │       ├── stars.gif / code.gif / bloom.gif
    │       └── custom/
    ├── components/
    ├── config/
    ├── hooks/
    ├── lib/
    └── styles/

End users personalize via Settings → Directories and VRoid Hub (see Using the app). The environments/custom/ folder is a contributor convenience when Directories is still Default.

Scripts

Command Audience Action
Windows .exe End users Installer — no Node
npm run desktop From source Build + Electron on dist/
npm run dev Contributors Browser localhost only
npm run dev:desktop Contributors Vite + Electron (hot reload)
npm run dist:win Contributors Build Windows NSIS installer (local desktop-setup/ output)
npm run build CI / web Production Vite bundle
npm run lint Contributors / CI ESLint (src/, electron/**/*.cjs, scripts; --max-warnings=0)
npm test Contributors / CI Electron unit tests (electron/*.test.cjs), renderer unit tests (src/**/*.test.mjs), and build-tooling tests (scripts/*.test.mjs, which run three real vite builds, so the suite takes ~15s)
npm run thumbs Contributors Re-render committed picker thumbnails into src/assets/avatars/thumbs/ and src/assets/environments/thumbs/

Continuous integration

Pull requests and pushes to main run .github/workflows/ci.yml: install → lint → test → production build in avatar/ on Ubuntu (Node 22). The workflow does not build the Windows installer (dist:win) and skips downloading the Electron binary (ELECTRON_SKIP_BINARY_DOWNLOAD) because unit tests do not launch Electron. Label sync remains a separate workflow (.github/workflows/sync-labels.yml).

Maintainer version bumps and GitHub Releases: Release checklist.

Run npm run thumbs whenever a bundled .vrm or .gif, or the config/avatars.js / config/environments.js catalog, changes, and commit the PNGs — the Appearance picker reads those files rather than rendering a live preview or playing the stage GIF. Custom-folder assets are cached at runtime under Electron userData/thumbnails/ instead. See Contributing.