
All checks were successful
build-and-push-ext / build_push (push) Successful in 58s
- Mise à jour de docs/ANALYSE.md et docs/ENV-RESUME.md - Correction de src/pages/authorized-bridge.tsx - Ajout du workspace VS Code
51 lines
1.9 KiB
Markdown
51 lines
1.9 KiB
Markdown
## 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.
|
||
|
||
|
||
|
||
|
||
|
||
|