mirror of
https://github.com/Pandipipas/scoreko-electron-dev.git
synced 2026-06-05 21:22:07 +00:00
feat: complete pending roadmap items with doctor, hardening, and code quality
This commit is contained in:
@@ -4,6 +4,7 @@ Wrapper de Electron para empaquetar una instalación de NodeCG que incluya el bu
|
||||
|
||||
## Requisitos clave
|
||||
|
||||
- Node `>=22` (`.nvmrc` incluido).
|
||||
- Electron fijado en `39.5.1`.
|
||||
|
||||
## Qué hace
|
||||
@@ -33,81 +34,31 @@ scoreko-electron-dev/
|
||||
- `npm run dev`: modo desarrollo.
|
||||
- `npm run build`: compila TypeScript y copia assets.
|
||||
- `npm run start`: build y ejecución local.
|
||||
- `npm run test`: build + tests unitarios (`node:test`).
|
||||
- `npm run doctor`: preflight de configuración y entorno (`lib/nodecg`, permisos, puerto y env vars).
|
||||
- `npm run lint`: reglas mínimas de calidad con ESLint.
|
||||
- `npm run format`: validación de formato con Prettier.
|
||||
- `npm run pack`: genera app sin instalador.
|
||||
- `npm run dist`: genera instalador.
|
||||
- `npm run rebuild:native`: rebuild nativo auxiliar en `lib/nodecg`.
|
||||
|
||||
## Variables de entorno útiles
|
||||
## Variables de entorno
|
||||
|
||||
- `NODECG_BUNDLE_NAME` (default: `scoreko-dev`)
|
||||
- `NODECG_PORT` (default: `9090`)
|
||||
- `SCOREKO_DASHBOARD_ROUTE` (default: `dashboard/example/main.html?standalone=true`)
|
||||
- `SCOREKO_LOADING_ROUTE` (default: `dashboard/loading/main.html?standalone=true`)
|
||||
- `SCOREKO_APP_TITLE` (default: `Scoreko`)
|
||||
- `SCOREKO_APP_USER_MODEL_ID` (default: `com.scoreko.desktop`)
|
||||
- `SCOREKO_APP_ICON_PATH` (default: búsqueda automática en `static/icons/icon.ico` y `static/icons/icon.png`)
|
||||
- `ELECTRON_LOAD_DELAY_MS` (default: `10000`)
|
||||
- `NODECG_STARTUP_TIMEOUT_MS` (default: `30000`)
|
||||
- `NODECG_KILL_TIMEOUT_MS` (default: `2500`)
|
||||
La **fuente única de defaults** está en `.env.example`.
|
||||
|
||||
## Assets de íconos incluidos
|
||||
1. Copia `.env.example` a `.env` (o exporta variables en tu shell/CI).
|
||||
2. Ajusta sólo lo necesario.
|
||||
3. Ejecuta `npm run doctor` para validar configuración antes de arrancar.
|
||||
|
||||
Se incluye `static/icons/` con placeholder editable:
|
||||
## Build multi-plataforma (iconos)
|
||||
|
||||
- `static/icons/icon.svg`
|
||||
- `build.win.icon`: `static/icons/icon.ico`
|
||||
- `build.linux.icon`: `static/icons`
|
||||
- `build.mac.icon`: `static/icons/icon.icns`
|
||||
|
||||
> En este repo no se versionan binarios. Para distribución final agrega localmente `static/icons/icon.ico` (Windows) y/o `static/icons/icon.png` (Linux/macOS runtime).
|
||||
> El `.icns` se referencia en la configuración de build y debe existir localmente para empaquetar macOS.
|
||||
|
||||
## Personalización (Windows / Electron)
|
||||
## Troubleshooting y arquitectura
|
||||
|
||||
### 1) Título de la app
|
||||
|
||||
- **Runtime (ventanas):** `SCOREKO_APP_TITLE`.
|
||||
- **Build (instalador y ejecutable):** `build.productName`.
|
||||
|
||||
### 2) Ícono en barra de tareas y esquina superior
|
||||
|
||||
Electron toma automáticamente el primer archivo existente en este orden:
|
||||
|
||||
1. `SCOREKO_APP_ICON_PATH` (si lo defines)
|
||||
2. `static/icons/icon.ico`
|
||||
3. `static/icons/icon.png`
|
||||
4. `static/icon.ico`
|
||||
5. `static/icon.png`
|
||||
|
||||
### 3) Ícono del `.exe` y accesos directos
|
||||
|
||||
Quedó configurado en `package.json` con `build.win.icon` + `build.nsis.installerIcon`/`uninstallerIcon`.
|
||||
|
||||
### 4) Nombre/autor del popup de Firewall de Windows
|
||||
|
||||
Ese diálogo usa metadata del ejecutable firmado:
|
||||
|
||||
- Nombre de app: normalmente `build.productName` y metadata del binario.
|
||||
- Publisher/autor: certificado de firma de código (si no firmas puede verse `Unknown publisher`).
|
||||
|
||||
Campos clave a revisar:
|
||||
|
||||
- `description`
|
||||
- `author`
|
||||
- `build.productName`
|
||||
- `build.win.executableName`
|
||||
- `build.appId`
|
||||
|
||||
Además, firma el `.exe` con certificado (`CSC_LINK` / `CSC_KEY_PASSWORD` en `electron-builder`).
|
||||
|
||||
## Checklist de personalización extra
|
||||
|
||||
- `build.appId`
|
||||
- `build.artifactName`
|
||||
- `build.win.executableName`
|
||||
- `build.win.icon`
|
||||
- `build.nsis` (nombre del setup, íconos, shortcut)
|
||||
- `build.mac.icon`
|
||||
- `build.linux.icon`
|
||||
- `SCOREKO_APP_USER_MODEL_ID`
|
||||
- `SCOREKO_APP_ICON_PATH`
|
||||
|
||||
## Roadmap de refactor recomendado
|
||||
|
||||
Si quieres una propuesta detallada de refactorización, limpieza y mejoras sin romper funcionalidad, revisa: `docs/refactor-roadmap.md`.
|
||||
- Guía de troubleshooting: `docs/troubleshooting.md`
|
||||
- Mapa de arquitectura: `docs/architecture.md`
|
||||
- Roadmap: `docs/refactor-roadmap.md`
|
||||
|
||||
Reference in New Issue
Block a user