Next.js 500 hatası: dev ve build aynı cache klasörünü paylaşınca

Next.js projesinde aniden tüm sayfalar 500 dönüyor, hata mesajı 'Module not found: Can't resolve @vercel/turbopack-next/internal/font/google/font' diyorsa, muhtemelen dev sunucusu ile build işlemi aynı anda çalışmış.

Sorun şu: `next dev --turbopack` çalışırken `next build` komutunu çalıştırdığında, her ikisi de `.next` klasörüne yazıyor. Turbopack'in font yönetim tablosu karışıyor, cache 281 MB'lık karmaşık artefaktlarla dolup taşıyor. font import haritası bozuluyor ve sunucu çöküyor.

İlk çözüm: `.next` klasörünü silip yeniden başlatmak. Ama bunu her seferinde yapmak saçma. Gerçek çözüm, her kullanım için ayrı bir `distDir` ayarlamak.

`next.config.mjs` dosyasına ekle:

1const nextConfig = {
2distDir: process.env.NEXT_DIST_DIR || ".next",
3};
4
5export default nextConfig;

`package.json` içinde dev komutunu güncelle:

1"dev": "NEXT_DIST_DIR=.next-dev next dev --turbopack"

Bu sayede dev ortamı `.next-dev` klasörüne, build işlemi `.next` klasörüne yazıyor. İstersen doğrulama build'i için de üçüncü bir klasör tanımla: `NEXT_DIST_DIR=.next-verify next build`.

Artık iki işlem aynı anda çalışsa da birbirini bozmayacak. Cache çakışması bitmiş, Turbopack rahat ediyor. Orijinal yazı daha detaylı bir açıklama içeriyor.

konu hakkında tepkinizi verebilirsiniz