Turbopack File System Caching adalah fitur Next.js yang menyimpan hasil kompilasi `next dev` dan `next build` ke disk (folder `.next`), sehingga build atau sesi dev berikutnya bisa membaca ulang cache itu alih-alih mengompilasi ulang dari nol. Fitur ini aktif default tanpa konfigurasi tambahan, kecuali environment build tidak pernah menyimpan folder `.next/cache` antar proses.

**Ringkasan cepat:**

1. `turbopackFileSystemCacheForDev` default aktif sejak Next.js 16.1 (Desember 2025), menyimpan cache `next dev` di `.next/dev/cache/turbopack`.
2. `turbopackFileSystemCacheForBuild` default aktif sejak Next.js 16.3 (Agustus 2026), menyimpan cache `next build` di `.next/cache/turbopack`.
3. Cache build hanya bermanfaat kalau folder kerja dipakai ulang antar build; container CI yang selalu mulai dari image bersih tidak akan pernah membaca cache itu.
4. Kedua opsi bisa dimatikan manual lewat `experimental` di `next.config.ts` kalau environment build memang tidak mendukung penyimpanan cache persisten.
5. Fitur ini melanjutkan persistent caching yang pertama kali dirilis eksperimental di Next.js 15.5 lewat canary release.

## Apa Itu Turbopack File System Caching?

Turbopack File System Caching adalah mekanisme Turbopack menyimpan hasil kerja kompilasi ke disk di dalam folder `.next`, dipisah per command: cache `next dev` dan cache `next build` punya lokasi dan opsi masing-masing. Saat proses berikutnya dijalankan di direktori kerja yang sama, Turbopack membaca cache itu lebih dulu dan hanya mengompilasi ulang modul yang benar-benar berubah.

Menurut [dokumentasi resmi Next.js](https://nextjs.org/docs/app/api-reference/config/next-config-js/turbopackFileSystemCache), fitur ini "mengizinkan Turbopack mengurangi pekerjaan lintas `next dev` atau `next build`", dengan data disimpan di bawah direktori `.next` antar proses.

### Kapan Fitur Ini Pertama Kali Ada?

| Versi | Status |
| --- | --- |
| 15.5.0 | Persistent caching dirilis eksperimental di canary release |
| 16.0.0 | Beta, dua flag terpisah untuk dev dan build |
| 16.1.0 | Aktif default untuk development |
| 16.3.0 | Aktif default untuk build |

Riwayat ini sejalan dengan [rangkuman fitur Next.js 16.1 hingga 16.3](/blog/fitur-baru-nextjs-16-1-16-2-16-3) yang pernah dibahas: perubahan ini masuk kategori peningkatan otomatis, bukan migrasi yang memaksa ubah kode.

## Bagaimana Cara Mengaktifkan atau Mengonfigurasi Turbopack File System Caching?

Karena kedua opsi sudah default `true`, langkah "mengaktifkan" sebenarnya hanya diperlukan untuk kasus eksplisit: menulis ulang nilainya dengan sengaja (misalnya untuk dokumentasi tim) atau justru menonaktifkannya. Tambahkan blok berikut ke `next.config.ts`:

```ts filename="next.config.ts"
import type { NextConfig } from "next";

const nextConfig: NextConfig = {
  experimental: {
    turbopackFileSystemCacheForDev: true,
    turbopackFileSystemCacheForBuild: true,
  },
};

export default nextConfig;
```

| Opsi | Berlaku untuk | Lokasi cache di disk | Default aktif sejak |
| --- | --- | --- | --- |
| `turbopackFileSystemCacheForDev` | `next dev` | `.next/dev/cache/turbopack` | Next.js 16.1 |
| `turbopackFileSystemCacheForBuild` | `next build` | `.next/cache/turbopack` | Next.js 16.3 |

Set salah satu opsi ke `false` untuk keluar (opt-out) dari cache tersebut, misalnya kalau ingin memastikan setiap build benar-benar mulai dari nol saat debugging masalah build yang dicurigai berasal dari cache basi.

## Kapan Build Justru Tidak Diuntungkan oleh Cache Ini?

Cache build hanya terasa manfaatnya kalau folder `.next/cache` benar-benar tersisa saat build berikutnya dijalankan. Menurut dokumentasi resmi, ada perbedaan nyata antar jenis environment:

- **Self-hosted build** yang memakai ulang direktori kerja yang sama antar build (misalnya VPS dengan `git pull` lalu `npm run build` berulang) otomatis diuntungkan, karena `.next/cache` tetap ada di disk dari proses sebelumnya.
- **Build berbasis container** biasanya mulai dari layer bersih setiap kali, sehingga `.next/cache` tidak ikut terbawa kecuali dikonfigurasi eksplisit untuk disimpan atau di-mount.
- **CI provider** (CircleCI, GitHub Actions, GitLab CI, dan sejenisnya) butuh konfigurasi cache terpisah untuk folder `.next/cache`, dirangkum lengkap di [panduan resmi CI build caching](https://nextjs.org/docs/app/guides/ci-build-caching).

> If your build environment never preserves `.next/cache`, set `turbopackFileSystemCacheForBuild: false` to skip writing a cache that will not be read.
>
> — [Turbopack FileSystem Caching, nextjs.org](https://nextjs.org/docs/app/api-reference/config/next-config-js/turbopackFileSystemCache)

Situs ini sendiri, kalau nanti upgrade ke Next.js 16.3 atau lebih baru, termasuk kategori pertama: build berjalan di working copy git yang sama (`/var/www/personal-brand`) berulang kali, bukan container sekali pakai, jadi cache build akan otomatis terbawa tanpa konfigurasi tambahan apa pun.

## Ringkasan: Cache Default Aktif Sejak 16.1 (Dev) dan 16.3 (Build), Matikan Hanya di CI Tanpa Cache Persisten

- Turbopack File System Caching sudah aktif default sejak Next.js 16.1 (dev) dan 16.3 (build), tidak butuh konfigurasi tambahan untuk proyek yang build-nya memakai ulang direktori kerja yang sama.
- Cache dev dan cache build disimpan di lokasi berbeda (`.next/dev/cache/turbopack` vs `.next/cache/turbopack`) dan dikontrol lewat dua opsi `experimental` terpisah.
- Matikan `turbopackFileSystemCacheForBuild` hanya kalau environment CI/container memang tidak pernah menyimpan `.next/cache` antar build, supaya tidak menulis cache yang tidak berguna.
- Topik cache Next.js lain yang sudah dibahas lebih dulu: migrasi loader webpack ke Turbopack ada di [cara mengaktifkan Turbopack production build](/blog/cara-mengaktifkan-turbopack-production-build), sementara proses upgrade versi lengkapnya ada di [cara upgrade Next.js 15 ke Next.js 16](/blog/cara-upgrade-nextjs-15-ke-16-langkah-demi-langkah). Butuh bantuan audit atau migrasi performa build Next.js? [Layanan web development](/layanan) mencakup pengecekan konfigurasi seperti ini.