Files
Autoparts-DB/scripts/minify-assets.sh
consultoria-as 21959f1b37 FASE 7d: Lazy Loading + Minificación + Auto-serve minified
Cambios implementados:

1. Lazy loading de imágenes:
   - catalog.js: loading="lazy" decoding="async" en part cards y detail panel
   - inventory.js: lazy loading en imagen de detalle de item

2. Minificación de assets:
   - scripts/minify-assets.sh: minifica JS (terser) y CSS para POS y Dashboard
   - 25 archivos .min.js + 5 .min.css generados en pos/static/
   - 14 archivos .min.js + 8 .min.css generados en dashboard/

3. Nginx auto-serve minified:
   - try_files $1.min.js antes de servir .js original
   - try_files $1.min.css antes de servir .css original
   - Transparente para los templates HTML (cero cambios en HTML)

4. Cache warming script:
   - scripts/warm_vehicle_cache.py: pobla Redis con vehicle info por batches
   - Mitiga DISTINCT ON + 4 JOINs sobre 2B filas
   - Corre en background, procesa ~1.5M parts

Tests: 73/73 pasando
2026-04-27 08:34:24 +00:00

48 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
# Minify JS and CSS assets for production deploy
# Run this before restarting nginx / gunicorn
set -e
echo "=== Minifying JS assets ==="
for f in /home/Autopartes/pos/static/js/*.js; do
base=$(basename "$f" .js)
out="/home/Autopartes/pos/static/js/${base}.min.js"
echo " $base.js -> ${base}.min.js"
terser "$f" -o "$out" --compress --mangle 2>/dev/null || cp "$f" "$out"
done
echo "=== Minifying CSS assets ==="
for f in /home/Autopartes/pos/static/css/*.css; do
base=$(basename "$f" .css)
out="/home/Autopartes/pos/static/css/${base}.min.css"
echo " $base.css -> ${base}.min.css"
if command -v csso >/dev/null 2>&1; then
csso "$f" -o "$out" 2>/dev/null || cp "$f" "$out"
else
cp "$f" "$out"
fi
done
echo "=== Minifying Dashboard assets ==="
for f in /home/Autopartes/dashboard/*.js; do
base=$(basename "$f" .js)
out="/home/Autopartes/dashboard/${base}.min.js"
echo " $base.js -> ${base}.min.js"
terser "$f" -o "$out" --compress --mangle 2>/dev/null || cp "$f" "$out"
done
for f in /home/Autopartes/dashboard/*.css; do
base=$(basename "$f" .css)
out="/home/Autopartes/dashboard/${base}.min.css"
echo " $base.css -> ${base}.min.css"
if command -v csso >/dev/null 2>&1; then
csso "$f" -o "$out" 2>/dev/null || cp "$f" "$out"
else
cp "$f" "$out"
fi
done
echo "=== Done ==="
echo "Minified files ready. Nginx will serve .min.js/.min.css when available."