You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Contrainte du static export : le loader Next/Image est désactivé, donc aucun `srcset` automatique. De plus, `grep sizes=` sur `src/` → 1 seul fichier sur 75 `` utilise le prop `sizes`.
Conséquences :
Mobile reçoit l'image originale (souvent 720px ou plus) pour un slot 400px → poids inutile, LCP dégradé.
Pas de format moderne (AVIF) servi conditionnellement.
Score Core Web Vitals pénalisé sur `/article/*` et `/nos-references` (grille de logos).
Solution
Deux étapes :
1. Pipeline de pré-traitement — script `postbuild` (ou `prebuild`) basé sur `sharp` qui, pour chaque image dans `public/images/`, génère :
3 tailles : 400w, 800w, 1200w
Format AVIF + WebP fallback
2. Composant wrapper `` qui émet :
```html
\`\`\`
Migration progressive :
Pages article (plus gros impact LCP)
`/nos-references` (grille de logos)
Reste du site
Alternative plus simple : utiliser un CDN image (Cloudinary, Imgix) avec un loader personnalisé Next/Image.
Problème
`next.config.ts` :
```ts
output: "export",
images: { unoptimized: true },
```
Contrainte du static export : le loader Next/Image est désactivé, donc aucun `srcset` automatique. De plus, `grep sizes=` sur `src/` → 1 seul fichier sur 75 `
` utilise le prop `sizes`.
Conséquences :
Solution
Deux étapes :
1. Pipeline de pré-traitement — script `postbuild` (ou `prebuild`) basé sur `sharp` qui, pour chaque image dans `public/images/`, génère :
2. Composant wrapper `` qui émet :
```html

\`\`\`Migration progressive :
Alternative plus simple : utiliser un CDN image (Cloudinary, Imgix) avec un loader personnalisé Next/Image.