3.6 KiB
scoreko-electron-dev
Wrapper de Electron para empaquetar una instalación de NodeCG que incluya el bundle scoreko-dev, inspirado en opeik/runback-electron pero actualizado a Electron + TypeScript moderno.
Requisitos clave
- Electron fijado en
39.5.1.
Qué hace
- Arranca
lib/nodecg/index.jscomo proceso hijo desde Electron. - Muestra la ruta de dashboard de carga del bundle (
/bundles/<bundle>/dashboard/loading.html) servida por NodeCG mientras inicia. - Carga el dashboard del bundle en
http://localhost:<puerto>/bundles/<bundle>/<ruta-dashboard>. - Empaqueta NodeCG + assets dentro de la app final con
electron-builder.
Estructura esperada
scoreko-electron-dev/
├─ lib/
│ └─ nodecg/
│ ├─ index.js
│ ├─ node_modules/
│ └─ bundles/
│ └─ scoreko-dev/
├─ src/main/main.ts
├─ static/icons/
└─ package.json
Scripts
npm run dev: modo desarrollo.npm run build: compila TypeScript y copia assets.npm run start: build y ejecución local.npm run pack: genera app sin instalador.npm run dist: genera instalador.npm run rebuild:native: rebuild nativo auxiliar enlib/nodecg.
Variables de entorno útiles
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 enstatic/icons/icon.icoystatic/icons/icon.png)ELECTRON_LOAD_DELAY_MS(default:10000)NODECG_STARTUP_TIMEOUT_MS(default:30000)NODECG_KILL_TIMEOUT_MS(default:2500)
Assets de íconos incluidos
Se incluye static/icons/ con placeholder editable:
static/icons/icon.svg
En este repo no se versionan binarios. Para distribución final agrega localmente
static/icons/icon.ico(Windows) y/ostatic/icons/icon.png(Linux/macOS runtime).
Personalización (Windows / Electron)
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:
SCOREKO_APP_ICON_PATH(si lo defines)static/icons/icon.icostatic/icons/icon.pngstatic/icon.icostatic/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.productNamey metadata del binario. - Publisher/autor: certificado de firma de código (si no firmas puede verse
Unknown publisher).
Campos clave a revisar:
descriptionauthorbuild.productNamebuild.win.executableNamebuild.appId
Además, firma el .exe con certificado (CSC_LINK / CSC_KEY_PASSWORD en electron-builder).
Checklist de personalización extra
build.appIdbuild.artifactNamebuild.win.executableNamebuild.win.iconbuild.nsis(nombre del setup, íconos, shortcut)build.mac.iconbuild.linux.iconSCOREKO_APP_USER_MODEL_IDSCOREKO_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.