lecoffre-front/docs/ANALYSE.md
Omar Oughriss 6a51281d00
All checks were successful
build-and-push-int-dev / build_push (push) Successful in 10s
Replace 'ext' tag with 'int-dev'
2025-09-22 15:01:49 +02:00

1.9 KiB
Raw Permalink Blame History

Analyse détaillée

Périmètre

Front Next.js lecoffre-front (Next 14, TypeScript), build multiétapes et image int-dev runtime.

Stack

  • Framework: Next.js 14 (React 18), TypeScript 4.9.5
  • UI: MUI, Emotion, Heroicons
  • Outillage: ESLint (8.36), Prettier
  • Ressources externes: le-coffre-resources via SSH Gitea (#v2.167)

Build et exécution

  • Scripts: dev, build (telemetry off, --no-lint), start, lint, format.
  • next.config.js: output: 'standalone', basePath: '/lecoffre', ignoreBuildErrors: true.
  • Docker multiétapes: deps (npm ci), development (npm run dev), builder (npm run build), int-dev (runtime node:19alpine, server.js).

Variables denvironnement

Variables NEXT_PUBLIC nombreuses (API back, IDNot, Docaposte, 4NK URLs, defaults). Exposées en env, publicRuntimeConfig, serverRuntimeConfig et redéclarées en Docker (ARGENV).

Ports et réseau

  • Port 3000 interne; exposé 3004:3000 dans lecoffre_node.

Dépendances clés

  • next@^14.2.3, react@18.2.0, sharp@^0.32.1 (build imageprocessing Alpine), jszip, jwt-decode, react-select, react-toastify.

Risques et points dattention

  • ignoreBuildErrors: true masque les erreurs TS. Risque de dérive de type.
  • --no-lint en build désactive ESLint. Manque de garde qualité en CI.
  • Node 19 sur Alpine: fin de support. Préférer LTS (20/22).
  • Dépendance Git SSH privée (lecoffre-ressources): exige agent SSH BuildKit; documenter clé et politiques.

Actions proposées

  • Rétablir le lint en build (ou CI) et supprimer ignoreBuildErrors si possible.
  • Monter vers Node LTS (20alpine) et tester sharp.
  • Documenter toutes les variables NEXT_PUBLIC et fournir .env.example.
  • Mettre en place codesplitting (React.lazy/Suspense) et centraliser létat (Context/Redux) selon les règles projet.