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
This commit is contained in:
47
scripts/minify-assets.sh
Executable file
47
scripts/minify-assets.sh
Executable file
@@ -0,0 +1,47 @@
|
||||
#!/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."
|
||||
Reference in New Issue
Block a user