## Analyse détaillée ### Périmètre Front Next.js `lecoffre-front` (Next 14, TypeScript), build multi‑étapes et image `ext` 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), `ext` (runtime node:19‑alpine, `server.js`). ### Variables d’environnement Variables NEXT_PUBLIC nombreuses (API back, IDNot, Docaposte, 4NK URLs, defaults). Exposées en `env`, `publicRuntimeConfig`, `serverRuntimeConfig` et redéclarées en Docker (`ARG`→`ENV`). ### 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 image‑processing Alpine), `jszip`, `jwt-decode`, `react-select`, `react-toastify`. ### Risques et points d’attention - `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 (20‑alpine) et tester `sharp`. - Documenter toutes les variables NEXT_PUBLIC et fournir `.env.example`. - Mettre en place code‑splitting (React.lazy/Suspense) et centraliser l’état (Context/Redux) selon les règles projet.