fiestas

Desarrollo local

Esta guía explica cómo ejecutar y validar Fiestas Valladolid 2026 en local. La documentación general del producto está en README.md.

Requisitos

Instalación

Desde la raíz del repositorio:

npm ci

npm ci instala exactamente las versiones fijadas en package-lock.json. Si estás desarrollando una actualización deliberada de dependencias, usa npm install y revisa después los cambios del lockfile.

Servidor de desarrollo

npm run dev

El comando:

  1. genera el sitio en dist/;
  2. inicia un servidor HTTP local;
  3. observa src/;
  4. vuelve a generar el sitio cuando cambia un archivo.

La aplicación queda disponible en:

http://127.0.0.1:8002/

Para usar otro puerto:

PORT=8010 npm run dev

El servidor de desarrollo envía Cache-Control: no-store, por lo que los cambios se pueden comprobar sin limpiar la caché del navegador. Detén el proceso con Ctrl+C.

Para desactivar explícitamente la analítica durante el desarrollo:

FIESTAS_ANALYTICS_ENABLED=false npm run dev

Build manual

Para generar únicamente la salida estática:

npm run build

El resultado se escribe en dist/. El build elimina primero esa carpeta, procesa las plantillas y los estilos, copia los recursos, valida los datos y genera las rutas de agenda, mapa, fichas y planes.

Para eliminar la salida generada:

npm run clean

No edites dist/ directamente. Los cambios deben hacerse en src/, scripts/ o los archivos de configuración del proyecto.

Pruebas

Ejecuta las pruebas automatizadas con:

npm test

También puedes comprobar que el service worker generado tiene sintaxis JavaScript válida:

node --check dist/sw.js

Antes de publicar, revisa al menos la agenda, filtros, mapa, una ficha con coordenadas, una ficha sin coordenadas, favoritos, planes, importación, tema claro/oscuro y la instalación PWA.

Datos de actividades

La fuente principal es:

src/data/fiestas-2026/events.json

El programa de referencia está en:

src/data/fiestas-2026/programa2026.md

Cada actividad necesita un ID entero positivo, único y estable. El build deriva el slug del título y crea rutas del tipo:

/e/<id>/<slug>/

Los planes públicos se mantienen en:

src/data/community-plans.json
src/data/community-plans/

Auditoría de ubicaciones

La auditoría local no hace peticiones externas ni modifica los datos:

npm run locations:audit

Para consultar Nominatim sin aplicar cambios:

node scripts/enrich-event-locations.mjs --dry-run --provider=nominatim

Para aplicar resultados con confianza suficiente:

node scripts/enrich-event-locations.mjs --apply --provider=nominatim

Para revisar también actividades que ya tienen coordenadas:

node scripts/enrich-event-locations.mjs --dry-run --provider=nominatim --repair

Los informes y la caché se guardan en .cache/fiestas/, una carpeta ignorada por Git.

Enlazado de imágenes

El script compara actividades locales con las fichas públicas de Eventos de Aldea Pucela y puede escribir las imágenes coincidentes en events.json:

npm run images:link

Es una operación que modifica el archivo de datos. Revisa el diff antes de conservar sus resultados.

Compartir temporalmente el servidor

Con npm run dev activo:

cloudflared tunnel --url http://127.0.0.1:8002

Cloudflare mostrará una URL temporal de trycloudflare.com. No es un despliegue permanente.

Flujo recomendado

npm ci
npm test
npm run build
npm run dev

Después de modificar código o datos:

  1. comprueba el comportamiento en el navegador;
  2. ejecuta npm test;
  3. vuelve a ejecutar npm run build;
  4. revisa git diff y git status;
  5. no incluyas dist/, .cache/ ni archivos temporales en el commit.

Configuración de analítica

El build admite estas variables:

Variable Uso
FIESTAS_ANALYTICS_ENABLED true activa la analítica y false la desactiva.
FIESTAS_MATOMO_URL Cambia la URL base de Matomo.
FIESTAS_MATOMO_SITE_ID Cambia el site ID de Matomo.

La taxonomía y los límites de privacidad están en docs/matomo.md.