mirror of
https://github.com/Pandipipas/scoreko-electron-dev.git
synced 2026-06-05 21:22:07 +00:00
12a0520b2c593a77052ad5b911bf4ceebda6ce60
fix: detect native-module ABI mismatch and wait for NodeCG readiness
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.
Qué hace
- Arranca
lib/nodecg/index.jscomo proceso hijo desde Electron. - Muestra una ventana de carga mientras NodeCG 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/ # clonado/copiado desde tu repo scoreko-dev
├─ src/main/main.ts
├─ static/loading.html
└─ package.json
Preparación con tu repo scoreko-dev
- Copia o clona tu instalación de NodeCG en
lib/nodecg. - Copia tu bundle
scoreko-devalib/nodecg/bundles/scoreko-dev. - Instala dependencias de NodeCG dentro de
lib/nodecg. - Instala dependencias del wrapper:
npm install
cd lib/nodecg
npm install
cd ../..
Si no haces
npm installdentro delib/nodecg, verás errores comoCannot find module ... node_modules/nodecg/dist/server/bootstrap.js.
Error típico: NODE_MODULE_VERSION (Node 22 vs Electron Node 20)
Si ves un error como better-sqlite3 ... NODE_MODULE_VERSION, tienes módulos nativos compilados para una versión distinta de Node.
- Entra a
lib/nodecg. - Reinstala/recompila dependencias nativas:
cd lib/nodecg
npm install
npm rebuild better-sqlite3 --update-binary
- Si persiste, elimina
node_modulesdel workspace que falla y vuelve a instalar.
Variables de entorno opcionales
Estas variables se leen en src/main/main.ts.
NODECG_PORT(default:9090)NODECG_BUNDLE_NAME(default:scoreko-dev)SCOREKO_DASHBOARD_ROUTE(default:dashboard/index.html)ELECTRON_LOAD_DELAY_MS(default:2500)NODECG_STARTUP_TIMEOUT_MS(default:30000)
Ejemplo (PowerShell):
$env:NODECG_PORT="9191"
$env:NODECG_BUNDLE_NAME="scoreko-dev"
npm run dev
Scripts
npm run dev: modo desarrollo (watch + relanzado de Electron).npm run start: build y ejecución local.npm run build: compila TypeScript y copia assets.npm run pack: genera app sin instalador.npm run dist: genera instalador/plataformas configuradas.
Nota de seguridad
La ventana principal usa contextIsolation: true, sandbox: true y nodeIntegration: false. Los enlaces externos se abren en el navegador del sistema.
Description
Languages
TypeScript
82.4%
JavaScript
11%
HTML
4.7%
NSIS
1.9%