Next.js 16 a fait passer Turbopack en standard — plus besoin de --turbo
dans les scripts, plus de bannière "experimental" au démarrage. On a
migré nos trois projets clients actifs la semaine dernière, et voici
notre lecture.
Le gain réel, côté dev
Sur un projet monorepo de taille moyenne (≈ 120 routes, 240 composants), le démarrage en dev est passé de :
- Webpack v5 (Next.js 14) : 8.2 s → premier rendu interactif
- Turbopack (Next.js 16) : 1.4 s → premier rendu interactif
Le HMR est aussi nettement plus net : une modification sur un composant partagé se propage en 80–120 ms là où on attendait parfois 600 ms.
Les pièges qu'on a rencontrés
1. Les imports .css qui font la tête
Turbopack est plus strict sur les imports de CSS depuis node_modules.
Si vous utilisez un plugin qui importe son propre CSS (ex. certains
composants UI tiers), il faut parfois l'exposer via une entrée
transpilePackages dans next.config.ts.
2. Les alias tsconfig
Les alias custom (autres que @/) marchent, mais il faut doubler la
config dans next.config.ts :
export default {
turbopack: {
resolveAlias: {
'@numelite/ui': './packages/ui/src',
},
},
}
Sans cette ligne, le serveur dev démarre, mais les sourcemaps pointent vers du code transpilé illisible.
3. Les generateStaticParams plus stricts
Next.js 16 refuse désormais les params non sérialisables (Date,
BigInt, etc.). Si vos params viennent de Payload ou Supabase, pensez à
JSON.parse(JSON.stringify(...)) avant de les retourner — ou mieux,
à typer proprement le mapping dès la fetch.
Ce qu'on garde à l'œil
- React Compiler est toujours expérimental. On ne l'active pas en prod pour l'instant — mais on le lance en dev pour voir ce qu'il détecte comme memoizations manquantes.
- View Transitions API devient utilisable côté Next en mode stable
(
viewTransition: truedans le config). On teste sur ce site — regardez la transition entre le portfolio et une case study.
TL;DR
Migrer vers Next.js 16 aujourd'hui, c'est quelques heures de config et un gain permanent de ×4–×5 sur les boucles de dev. On recommande, surtout pour les projets monorepo où chaque redémarrage fait mal.