Files
scoreko-electron-dev/README.md
T

77 lines
2.2 KiB
Markdown

# 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:
```json
"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 pantalla de carga propia del bundle (`dashboard/loading.html`) 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
```text
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:
```bash
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:
```bash
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`)