Quiero compartirte el script que uso para compilar un PWA de mi punto de venta que usa WebAssembly. Es un simple
script que ejecuta los comandos para compilar el WASM de Go, luego ejecutar npm run build
, genera el Service worker
para que sea una PWA y la envía al servidor con claves SSH y Rsync
Script para subir PWA
Es un simple script de Bash que ejecuto en MSYS2 MSYS y se ve así:
#!/bin/bash
cd wasm
make
cd ..
npm run build
workbox generateSW workbox-config.cjs
rsync -rvnzi --delete dist/ usuario@servidor.com:/var/www/misitio/apps/pos/
echo "¿Subir? [s/n]"
read opcion
if [[ "$opcion" == "s" ]]; then
echo "Subiendo..."
rsync -rvzi --delete dist/ usuario@servidor.com:/var/www/misitio/apps/pos/
fi
Fíjate que para subir la app ya compilada primero hace un dry run con rsync para mostrarme los archivos que cambiaron, que se van a eliminar y que se van a agregar.
Si la salida me parece correcta entonces me pregunta si deseo subirlo. Cuando acepto entonces se sube sin hacer el dry run.
Básicamente el dry run me permite saber lo que se va a modificar sin que rsync realmente lo haga. Con este script simplemente debo terminar de hacer los cambios en mi app y ejecutarlo.
Una vez subido entonces el sistema va a revisar que hay una nueva actualización y preguntar al usuario si desea actualizar. Todo en automático.