mirror of
https://github.com/Pandipipas/scoreko-electron-dev.git
synced 2026-06-05 21:22:07 +00:00
2.2 KiB
2.2 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. - Script requerido para recompilar
better-sqlite3contra Electron 39.5.1:
"rebuild:better-sqlite3:electron": "npm --prefix ../.. rebuild better-sqlite3 --runtime=electron --target=39.5.1 --dist-url=https://electronjs.org/headers"
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 (no usa un archivo local del wrapper). - 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
└─ 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.npm run rebuild:better-sqlite3:electron: comando exigido para rebuild debetter-sqlite3.
Troubleshooting
Error: Cannot find module 'bindings'
Si aparece en database-adapter-sqlite-legacy/node_modules/better-sqlite3/lib/database.js, faltan dependencias del workspace sqlite legacy.
Ejecuta:
cd lib/nodecg/workspaces/database-adapter-sqlite-legacy
npm install
npm install bindings --no-save
cd ../../../../
npm run rebuild:native
Error: NODE_MODULE_VERSION
Recompila nativos contra Electron 39.5.1:
npm run rebuild:native
npm run rebuild:better-sqlite3:electron
Variables de entorno útiles
NODECG_BUNDLE_NAME(default:scoreko-dev)SCOREKO_DASHBOARD_ROUTE(default:dashboard/index.html)SCOREKO_LOADING_ROUTE(default:dashboard/loading.html)