14-Despliegue

por Ariel

última actualización: 30-11-2025


Introducción

Desplegar proyectos/aplicaciones Waku es relativamente fácil, sobre todo si ya hemos desplegado otro tipo de aplicaciones web.

Después de ejecutar el comando para build `waku build` (o simplemente pnpm build), podemos ejecutar el comando`waku start`(pnpm start) para ejecutar el servidor de desarrollo localmente.

Si nuestro proyecto es puro SSG, basta con subir la carpeta `dist` a cualquier servidor estático, teniendo en cuenta que cualquier funcionalidad dinámica (como renderizado dinámico, server actions, API endpoints) no funcionará.

En esta sección veremos cómo desplegar específicamente en Netlify. Para más info sobre cómo desplegar en otras plataformas, pueden visitar este enlace que lo llevará a la sección de despliegue de la documentación oficial.

Despliegue en Netlify

Para desplegar en Netlify, la documentación nos indica que debemos ejecutar lo siguiente en la terminal:

1NETLIFY=1 pnpm run build
2netlify deploy --prod

Si intentamos desplegar mediante Despliegue Continuo, podríamos tener errores, por lo que es recomendable realizar el despliegue manualmente utilizando los comandos anteriores, o bien generando un bash script para automatizarlo.

Acá un ejemplo de cómo hacerlo:

  1. 1. Creamos un archivo `.env.local` en la raíz del proyecto. Este archivo NUNCA debe subirse a un repositorio público, ya que puede contener información sensible. Para ello basta con agregarlo al `.gitignore` antes de hacer commit. En este archivo agregamos la variable `NETLIFY_SITE_ID` con el ID de nuestro sitio en Netlify (opcional, pero recomendado para evitar tener que loguearse en la CLI de Netlify cada vez que desplegamos).
  2. Creamos un archivo `scripts/deploy-netlify.sh` con el siguiente contenido:
    1# scripts/deploy-netlify.sh
    2
    3#!/usr/bin/env bash
    4set -euo pipefail
    5
    6# Usar `NETLIFY_SITE_ID` en .env.local permitirá pasar implicitamente el site id al comando de deploy.
    7if [ -f ".env.local" ]; then
    8 echo "Cargando variables de entorno desde .env.local"
    9 # exporta todas las variables definidas en el archivo .env.local
    10 set -o allexport
    11 # shellcheck disable=SC1091
    12 source ".env.local"
    13 set +o allexport
    14fi
    15
    16# Validaciones básicas
    17if ! command -v pnpm >/dev/null 2>&1; then
    18 echo "Error: pnpm no está instalado. Instala pnpm y vuelve a intentar."
    19 exit 1
    20fi
    21
    22if ! command -v netlify >/dev/null 2>&1; then
    23 echo "Error: Netlify CLI (netlify) no está instalado. Instala netlify-cli y vuelve a intentar."
    24 exit 1
    25fi
    26
    27echo "Ejecutando: NETLIFY=1 pnpm run build"
    28NETLIFY=1 pnpm run build
    29
    30if [[ -z "${NETLIFY_SITE_ID:-}" ]]; then
    31 echo "Ejecutando: netlify deploy --prod"
    32 netlify deploy --prod
    33else
    34 echo "Ejecutando: netlify deploy --prod --site $NETLIFY_SITE_ID"
    35 netlify deploy --prod --site "$NETLIFY_SITE_ID"
    36fi
    37
  3. Agregamos el script a `package.json`:
    1// package.json
    2
    3"scripts": {
    4"deploy:netlify": "bash scripts/deploy-netlify.sh"
    5}
    6
  4. Y para desplegar ejecutamos el siguiente comando:
    1pnpm deploy:netlify