mirror of
https://github.com/Pandipipas/scoreko-dev.git
synced 2026-06-06 03:32:06 +00:00
120 lines
3.3 KiB
Markdown
120 lines
3.3 KiB
Markdown
# Electron wrapper para Scoreko
|
|
|
|
Este wrapper permite abrir el bundle de NodeCG como una app de escritorio usando Electron.
|
|
|
|
## Requisitos
|
|
|
|
- Node.js 22+
|
|
- Electron wrapper fijado en `39.5.1` (usa Node.js `22.22.0`).
|
|
- Dependencias del proyecto raíz ya instaladas
|
|
- `node index.js` funcional en la raíz de NodeCG
|
|
|
|
## Estructura esperada
|
|
|
|
Este bundle suele vivir en `bundles/scoreko-dev`. El wrapper asume por defecto que la raíz de NodeCG está en `../../` respecto a esta carpeta.
|
|
|
|
Si tu estructura es distinta, podés usar la variable `NODECG_ROOT`.
|
|
|
|
## Instalación
|
|
|
|
Desde la raíz del repositorio:
|
|
|
|
```bash
|
|
cd electron
|
|
npm install
|
|
```
|
|
|
|
## Uso rápido
|
|
|
|
> Nota: los scripts usan `cross-env` para que funcionen igual en Windows, macOS y Linux.
|
|
|
|
```bash
|
|
cd electron
|
|
npm start
|
|
```
|
|
|
|
`npm start` arranca NodeCG con Node del sistema (`NODE_BINARY`, por defecto `node`) y después abre la ventana de Electron. Este es el modo recomendado.
|
|
|
|
Para desarrollo, usá:
|
|
|
|
```bash
|
|
npm run start:dev
|
|
```
|
|
|
|
`start:dev` también usa Node del sistema y deja variables preparadas para desarrollo.
|
|
|
|
## Variables de entorno
|
|
|
|
- `NODECG_ROOT`: ruta a la raíz de NodeCG (relativa al bundle o absoluta).
|
|
- `NODECG_PORT`: puerto de NodeCG (por defecto `9090`).
|
|
- `ELECTRON_START_URL`: URL que abre la ventana (por defecto `http://localhost:9090/bundles/scoreko-dev/dashboard/scoreko-dev/main.html?standalone=true`).
|
|
- `NODE_BINARY`: ejecutable de Node.js para arrancar NodeCG (por defecto `node`).
|
|
- `NODECG_USE_ELECTRON_NODE`: si vale `1`, NodeCG arranca con el runtime de Node embebido en Electron (`process.execPath`).
|
|
|
|
Ejemplo:
|
|
|
|
```bash
|
|
NODECG_ROOT=../.. NODECG_PORT=9090 ELECTRON_START_URL=http://localhost:9090/bundles/scoreko-dev/dashboard/scoreko-dev/main.html?standalone=true npm start
|
|
```
|
|
|
|
## Modo desarrollo recomendado
|
|
|
|
Script de desarrollo:
|
|
|
|
```bash
|
|
npm run start:dev
|
|
```
|
|
|
|
Modo alternativo (experimental) si querés forzar Node embebido de Electron:
|
|
|
|
```bash
|
|
npm run start:electron-node
|
|
```
|
|
|
|
Si vas a usar el modo Electron-Node y te aparece `NODE_MODULE_VERSION`, recompilá `better-sqlite3` contra Electron 39.5.1:
|
|
|
|
```bash
|
|
npm run rebuild:better-sqlite3:electron
|
|
```
|
|
|
|
También podés hacerlo y arrancar en un paso:
|
|
|
|
```bash
|
|
npm run start:electron-node:rebuild
|
|
```
|
|
|
|
## Troubleshooting: `NODE_MODULE_VERSION` (better-sqlite3)
|
|
|
|
Si ves un error como:
|
|
|
|
```txt
|
|
was compiled against a different Node.js version ...
|
|
NODE_MODULE_VERSION 127 ... requires NODE_MODULE_VERSION 136
|
|
```
|
|
|
|
significa que NodeCG se está ejecutando con un runtime distinto al que compiló los módulos nativos (`better-sqlite3`).
|
|
|
|
- `127` corresponde a Node.js 22 (normalmente tu instalación de Node).
|
|
- El otro número (`136`, `140`, etc.) representa la ABI del runtime de Node embebido en la versión de Electron que estés usando.
|
|
|
|
Recomendación práctica: usá Node del sistema (`start`/`start:dev`) para NodeCG. Si forzás `start:electron-node`, tenés que recompilar nativos (como `better-sqlite3`) contra la ABI de Electron.
|
|
|
|
Pasos recomendados en Windows:
|
|
|
|
```bash
|
|
# desde la raíz de NodeCG (no dentro de electron)
|
|
cd ~/Desktop/nodecg
|
|
rm -rf node_modules package-lock.json
|
|
npm install
|
|
|
|
# opcional: forzar recompilación de nativos para tu Node actual
|
|
npm rebuild better-sqlite3
|
|
```
|
|
|
|
Y si tenés varias instalaciones de Node:
|
|
|
|
```bash
|
|
cd bundles/scoreko-dev/electron
|
|
NODE_BINARY="C:/Program Files/nodejs/node.exe" npm start
|
|
```
|