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};45export 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.
0 yorum