1.9 KiB
1.9 KiB
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: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.