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
48 lines
1.4 KiB
Bash
Executable File
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."
|