2.1 KiB
2.1 KiB
F-141 — Implementer evidence
Cambios realizados
project/frontend/next.config.ts- Añadidos
turbopack.rootyoutputFileTracingRoot, ambos fijados afrontendRoot. - El frontend ya no hereda la raíz de workspace de
project/package-lock.jsonni intenta mezclar el.nextdefrontendcon otra aplicación.
- Añadidos
- Rutas del customer frontend que consultan catálogo/CMS en servidor:
src/app/page.tsxsrc/app/categories/page.tsxsrc/app/categories/[slug]/page.tsxsrc/app/brands/page.tsxsrc/app/brands/[slug]/page.tsxsrc/app/products/page.tsxsrc/app/products/[slug]/page.tsxsrc/app/admin/products/page.tsx- Se cambió ISR estático (
revalidate = 3600) pordynamic = 'force-dynamic'donde los datos son obligatorios. /searchya era dinámico y no requirió cambios.
Motivo técnico
/categories ejecutaba fetchCategories() durante el prerender estático. Con NEXT_PUBLIC_API_URL=http://192.168.18.93:3000 y backend apagado, Next abortaba el build con ECONNREFUSED. Convertir las páginas dependientes de API en dinámicas mantiene la fuente de verdad en el backend y traslada el fetch al request runtime; no añade mocks ni datos paralelos.
El error posterior de frontend/.next/prerender-manifest.json era consecuencia del build abortado antes de escribir el manifest. Tras el build correcto el archivo vuelve a existir.
Verificación
cd project/frontend
rm -rf .next
NEXT_PUBLIC_API_URL=http://192.168.18.93:3000 npm run build ✅
Resultado frontend:
- sin warning de múltiples lockfiles;
- sin
ECONNREFUSED; - sin error de prerender
/categoriesni/brands; - TypeScript correcto;
project/frontend/.next/prerender-manifest.jsonpresente;- rutas de catálogo aparecen como
ƒ(server-rendered on demand).
También verificado:
project/apps/admin: npm run build ✅
project/storefront: npm run build ✅
project/frontend: npx tsc --noEmit ✅
./scripts/verify.sh ✅
No se modificaron contratos API ni el backend. La aplicación sigue obteniendo ventas/catálogo del sistema real en runtime.