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-sqlite3 contra 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.js como 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 en lib/nodecg.
  • npm run rebuild:better-sqlite3:electron: comando exigido para rebuild de better-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)
S
Description
No description provided
Readme 1.1 MiB
Languages
TypeScript 82.4%
JavaScript 11%
HTML 4.7%
NSIS 1.9%