[FIXED] Corrección para package.json vacío en script nodered.sh
- Añadida verificación de package.json vacío o inválido - Implementada eliminación automática de archivos package.json problemáticos - Mejorada función install_deps para manejo robusto de dependencias - Añadido respaldo automático de archivos dañados - Añadida inicialización de package.json cuando no existe - Mejorada verificación de instalación exitosa de Node-RED 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
89daa56b46
commit
fa0a5563c5
1 changed files with 46 additions and 1 deletions
|
@ -95,6 +95,21 @@ start() {
|
|||
exit 1
|
||||
fi
|
||||
|
||||
# Verificar package.json y corregirlo si está vacío o dañado
|
||||
if [ -f "package.json" ]; then
|
||||
# Verificar si package.json está vacío o solo contiene espacios/saltos de línea
|
||||
if [ ! -s "package.json" ] || [ "$(cat package.json | tr -d '[:space:]')" = "" ]; then
|
||||
echo "ADVERTENCIA: Archivo package.json está vacío. Eliminándolo..."
|
||||
rm -f "package.json"
|
||||
else
|
||||
# Verificar si el archivo es un JSON válido
|
||||
if ! node -e "try { require('./package.json'); process.exit(0); } catch(e) { console.error('JSON inválido:', e.message); process.exit(1); }" 2>/dev/null; then
|
||||
echo "ADVERTENCIA: Archivo package.json contiene JSON inválido. Haciendo copia de seguridad y eliminándolo..."
|
||||
mv "package.json" "package.json.bak.$(date +%Y%m%d%H%M%S)"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Verificar si node-red está disponible localmente
|
||||
if ! npm list -g node-red &> /dev/null && ! npm list node-red &> /dev/null; then
|
||||
echo "Node-RED no está instalado. Instalando localmente..."
|
||||
|
@ -335,13 +350,43 @@ install_deps() {
|
|||
exit 1
|
||||
fi
|
||||
|
||||
# Verificar y corregir package.json si es necesario
|
||||
if [ -f "package.json" ]; then
|
||||
# Verificar si package.json está vacío o solo contiene espacios/saltos de línea
|
||||
if [ ! -s "package.json" ] || [ "$(cat package.json | tr -d '[:space:]')" = "" ]; then
|
||||
echo "ADVERTENCIA: Archivo package.json está vacío. Eliminándolo para una instalación limpia..."
|
||||
rm -f "package.json"
|
||||
else
|
||||
# Verificar si el archivo es un JSON válido
|
||||
if ! node -e "try { require('./package.json'); process.exit(0); } catch(e) { process.exit(1); }" 2>/dev/null; then
|
||||
echo "ADVERTENCIA: Archivo package.json contiene JSON inválido. Haciendo copia de seguridad..."
|
||||
mv "package.json" "package.json.bak.$(date +%Y%m%d%H%M%S)"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Inicializar package.json si no existe
|
||||
if [ ! -f "package.json" ]; then
|
||||
echo "Inicializando package.json..."
|
||||
npm init -y
|
||||
fi
|
||||
|
||||
# Instalar o actualizar Node-RED
|
||||
echo "Instalando Node-RED..."
|
||||
npm install --save node-red
|
||||
|
||||
# Instalar paquetes comunes útiles para IoT
|
||||
echo "Instalando módulos adicionales para Node-RED..."
|
||||
npm install --save node-red-dashboard node-red-node-serialport node-red-contrib-mqtt-broker
|
||||
|
||||
echo "Dependencias instaladas correctamente."
|
||||
# Verificar si las instalaciones fueron exitosas
|
||||
if npm list node-red | grep -q "node-red"; then
|
||||
echo "Node-RED instalado correctamente."
|
||||
else
|
||||
echo "ADVERTENCIA: Hubo problemas instalando Node-RED."
|
||||
fi
|
||||
|
||||
echo "Todas las dependencias instaladas. Use './nodered.sh start' para iniciar el servidor."
|
||||
}
|
||||
|
||||
logs() {
|
||||
|
|
Loading…
Reference in a new issue