Corregir rutas de Butterchurn en node_modules y aislar el arranque de cada motor

Butterchurn publica sus builds en lib/ (butterchurn.min.js y butterchurnPresets.min.js), no en dist/base.min.js. El instalador ahora busca los ficheros por nombre con find_copy, robusto a cambios de carpeta entre versiones. Ademas el escenario inicia cada motor por separado: si una libreria falta, los demas siguen funcionando (antes un fallo de Butterchurn impedia que Hydra se inicializara, de ahi el error 'src is not defined').

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
hacklab 2026-05-22 16:18:39 +02:00
parent e3db98b089
commit c8b51615ba
2 changed files with 36 additions and 17 deletions

View file

@ -181,10 +181,19 @@ copy_lib() { # copy_lib <origen> <destino> <descripcion>
warn "no se pudo copiar: $3 ($1)"
fi
}
copy_lib node_modules/butterchurn/dist/butterchurn.min.js \
lib/butterchurn.min.js "Butterchurn"
copy_lib node_modules/butterchurn-presets/dist/base.min.js \
lib/butterchurn-presets.min.js "Presets de Butterchurn"
# Busca un fichero por nombre dentro de un paquete y lo copia. Es robusto a
# que el paquete cambie de carpeta (dist/, lib/, build/) entre versiones.
find_copy() { # find_copy <paquete> <nombre> <destino> <descripcion>
local f
f="$(find "node_modules/$1" -name "$2" -type f 2>/dev/null | head -n1)"
if [ -n "$f" ] && cp "$f" "$3" 2>/dev/null && [ -s "$3" ]; then
log_ok "$4"
else
warn "no se encontro $4 ($2 dentro de node_modules/$1)"
fi
}
find_copy butterchurn butterchurn.min.js lib/butterchurn.min.js "Butterchurn"
find_copy butterchurn-presets butterchurnPresets.min.js lib/butterchurn-presets.min.js "Presets de Butterchurn"
copy_lib node_modules/socket.io-client/dist/socket.io.min.js \
lib/socket.io.min.js "Socket.IO"
copy_lib node_modules/qrcode-generator/qrcode.js \