SvelteKit 3 Masuk Release Candidate: Konfigurasi Pindah ke Vite, $lib Jadi #lib
  easystem   30 September 2026   Developer

SvelteKit — framework full-stack di atas Svelte — resmi masuk fase Release Candidate (RC) untuk versi 3. Pengumuman resmi tim Svelte menyebut: jika pengujian komunitas berjalan lancar, versi stabil akan menyusul dalam waktu dekat tanpa perubahan breaking tambahan. Rilis ini bukan sekadar tambah fitur — tim memanfaatkannya untuk memangkas kode warisan dan menyiapkan fondasi SvelteKit ke depan.

Bagi yang memelihara aplikasi SvelteKit 2.x, fase RC adalah waktu paling murah untuk menjajal migrasi. Berikut perubahan penting yang perlu diketahui.

Konfigurasi pindah ke vite.config.ts

svelte.config.js tidak lagi didukung. Konfigurasi kini ditulis di vite.config.ts dan diteruskan langsung ke plugin sveltekit(). Opsi yang dulu berada di bawah config.kit.* sekarang menjadi opsi plugin — sejumlah opsi lama dihapus, diganti, atau disatukan.

import { defineConfig } from 'vite';
import { sveltekit } from '@sveltejs/kit/vite';
import adapter from '@sveltejs/adapter-auto';

export default defineConfig({
  plugins: [
    sveltekit({
      compilerOptions: { experimental: { async: true } },
      adapter: adapter()
    })
  ]
});

Alias $lib berganti jadi #lib

Alias $lib pensiun, digantikan #lib yang dideklarasikan di field imports pada package.json — memakai fitur subpath imports bawaan Node.js yang dikenali langsung oleh Vite dan TypeScript. Konsekuensinya: impor wajib menyertakan ekstensi file.

{
  "imports": {
    "#lib": "./src/lib/index.js",
    "#lib/*": "./src/lib/*"
  }
}

Contoh: import { foo } from '$lib/foo' menjadi import { foo } from '#lib/foo.js'. Perubahan ini sempat ramai diperdebatkan di komunitas, tetapi pendekatan standar Node ini justru menghapus kode SvelteKit yang harus mengoordinasikan alias di antara Vite dan TypeScript. Alias versi sendiri tetap boleh dibuat bagi yang ingin tetap memakai $lib.

TypeScript dan service worker lebih sederhana

tsconfig.json kini cukup meng-extend $app/tsconfig (bukan lagi ./.svelte-kit/tsconfig.json) dan sebaiknya mencantumkan daftar include/exclude secara eksplisit. Modul $service-worker dihapus; version diimpor dari $app/env, data aset dan halaman dari modul baru $app/manifest, serta $app/paths untuk fungsi asset() dan resolve().

Error handling dan shallow routing

Karena SvelteKit 3 mewajibkan Svelte 5, error boundary dimanfaatkan penuh: +error.svelte kini juga tampil untuk error yang terjadi saat render, semua error (termasuk hasil error(...) yang disengaja) dialirkan ke handleError, dan stack trace di produksi mendapat sourcemap. Shallow routing berpindah dari pushState/replaceState ke goto(url, { shallow: true }), lengkap dengan opsi persistState: true agar state halaman bertahan setelah reload.

Vite 8 dan Rolldown: build lebih cepat

SvelteKit 3 mensyaratkan Vite 8 (versi 2.x hanya mendukungnya), yang membawa bundler Rolldown untuk build lebih cepat. Vite Environment API juga diadaptasi; hanya FetchableDevEnvironment yang sengaja tidak didukung karena dinilai menambah kompleksitas framework.

Persyaratan versi dan cara migrasi

Pastikan dependensi minimal ini terpenuhi:

  • Node.js v22.17 atau lebih baru
  • TypeScript v6
  • Svelte v5.57.1 (SvelteKit 3 membutuhkan Svelte 5)
  • Vite v8.0.12 dan @sveltejs/vite-plugin-svelte v7

Untuk aplikasi yang sudah ada, jalankan codemod resminya:

  1. Coba di branch terpisah agar aman.
  2. Jalankan
    npx sv@next migrate sveltekit-3 --tasks all --confirm
  3. Bereskan daftar TODO yang dihasilkan otomatis; SvelteKit juga memberi peringatan diagnostik untuk kode yang belum diperbarui.
  4. Uji aplikasi. Untuk proyek baru: npx sv@next create my-new-app.

Dokumentasi SvelteKit 3 untuk sementara tersedia di next.svelte.dev, dan changelog lengkapnya ada di branch version-3 repositori GitHub SvelteKit.

Remote functions: masih eksperimental

Fitur yang paling ditunggu — remote functions sebagai cara baru komunikasi client–server — masih di balik flag experimental.remoteFunctions. Tim Svelte bahkan menyebut fitur ini akan membuat load functions dan actions terasa kuno, tetapi belum disarankan untuk dipakai di produksi.

Ringkasnya: SvelteKit 3 adalah rilis perapian yang menekan utang teknis — konfigurasi satu tempat, alias dengan standar Node, error handling konsisten, dan build lebih cepat. Kalau aplikasi Anda masih di SvelteKit 2.x, coba RC-nya sekarang selagi jendela migrasi masih murah.

Sumber: The SvelteKit 3 Release Candidate is here (svelte.dev); SvelteKit 3 Reaches Release Candidate (InfoQ); Panduan migrasi SvelteKit 3 (next.svelte.dev); Changelog version-3 (GitHub).

Tags :

sveltekit , svelte , javascript , frontend , framework

Bagikan :