# Frontend NovaWoW (islas React/TSX con Vite) Migración incremental de las plantillas HTML de Django a componentes React/TSX, montados como **islas** sobre las páginas que sigue sirviendo Django. Los datos se obtienen de endpoints JSON bajo `/api/` (ver `home/api_urls.py`). ## Estructura - `src/entries/*.tsx` — puntos de entrada de Vite; cada uno monta una isla en un contenedor que deja la plantilla Django (p. ej. `#home-news-app`). - `src/components/*.tsx` — componentes React. - `vite.config.ts` — build a `../static/dist` con manifest (base `/static/dist/`). La plantilla carga la isla con `{% load django_vite %}` + `{% vite_asset 'src/entries/xxx.tsx' %}`. ## Desarrollo (con HMR) Requiere `DJANGO_DEBUG=True`. En un terminal: ``` cd frontend && npm install && npm run dev ``` django-vite (dev_mode = DEBUG) inyecta el cliente HMR y sirve desde el dev server. ## Producción (build) Con `DJANGO_DEBUG=False`, Django sirve el bundle construido vía manifest. Tras cualquier cambio en `frontend/`: ``` cd /root/NovaWoW/frontend && npm run build # genera ../static/dist + manifest cd /root/NovaWoW && .venv/bin/python manage.py collectstatic --noinput systemctl restart novawow ``` Los artefactos (`node_modules/`, `static/dist/`) están en `.gitignore`: se regeneran con `npm run build`.