Tim pengembang inti Svelte resmi meluncurkan SvelteKit versi 3.0 ke publik. Rilis besar ini menandai langkah konsolidasi arsitektur framework setelah stabilisasi model reaktivitas Svelte 5. Mengusung fokus pembersihan utang teknis dan perampingan perkakas internal, pembaruan ini menanggalkan sejumlah konvensi konfigurasi warisan, mengadopsi standar resmi platform web dan ekosistem Node.js, serta menyelaraskan alur kerja pengembang dengan ekosistem Vite generasi terbaru. Peluncuran ini dibarengi dengan hadirnya versi stabil antarmuka baris perintah resmi sv 1.0 yang menyediakan otomatisasi migrasi kode proyek secara menyeluruh.
Penyatuan Konfigurasi ke dalam vite.config.ts
Perubahan struktural paling mencolok dalam SvelteKit 3 adalah penghapusan berkas konfigurasi mandiri svelte.config.js. Selama beberapa tahun terakhir, berkas tersebut menjadi pusat deklarasi adapter, preprocess, dan parameter routing. Namun, keberadaan berkas terpisah menciptakan overhead proses berupa resolusi modul asinkron sebelum plugin Vite dapat dijalankan saat startup server pengembangan maupun kompilasi build produksi.
Pada versi 3.0, seluruh konfigurasi SvelteKit kini didefinisikan langsung di dalam konfigurasi plugin Vite pada vite.config.ts. Pendekatan terpadu ini memberikan akses instan bagi ekosistem perkakas Vite untuk membaca konfigurasi aplikasi tanpa melewati siklus pembacaan konfigurasi eksternal. Konfigurasi adapter, aturan prerendering, hingga penanganan jalur statis kini menjadi parameter langsung dari fungsi plugin SvelteKit di dalam konfigurasi bundler utama.
Transisi dari Alias $lib ke Standar Subpath Imports #lib
SvelteKit 3 menanggalkan alias bawaan $lib yang selama ini menjadi ciri khas struktur proyek Svelte. Sebagai gantinya, framework ini beralih ke #lib dengan memanfaatkan fitur resmi subpath imports yang telah menjadi standar spesifikasi Node.js dan didukung luas oleh ekosistem runtime JavaScript modern.
Dalam praktiknya, pemetaan direktori pustaka kini dicatat langsung di kolom imports pada package.json alih-alih diatur melalui mekanisme resolusi kustom internal framework. Langkah ini memecahkan berbagai friksi integrasi dengan perkakas eksternal seperti linter ESLint, pengetes kode Vitest, bundler sekunder, serta manajemen ruang kerja monorepo. Karena #lib mematuhi resolusi modul standar, perkakas pihak ketiga tidak lagi memerlukan plugin resolusi jalur khusus SvelteKit untuk mengenali berkas-berkas komponen dan utilitas bersama di dalam repositori.
Pembaruan Fondasi: Node 22.17, TypeScript 6, dan Vite 8 dengan Rolldown
SvelteKit 3 secara tegas menaikkan persyaratan minimum dependensi lingkungan kerja pengembang. Framework ini kini mensyaratkan Node.js versi 22.17 ke atas, TypeScript versi 6, serta Svelte versi 5.56.4 atau yang lebih baru.
Di sisi perkakas build, SvelteKit 3 mewajibkan Vite versi 8.0.12. Versi Vite ini mengintegrasikan bundler berbasis bahasa pemrograman Rust, Rolldown versi 1.0 stabil, yang menggantikan peran Rollup dalam proses bundling produksi. Kehadiran arsitektur baru pada Vite 8 ini membawa peningkatan kecepatan kompilasi melalui mekanisme filter hook plugin serta membuka pemanfaatan Vite Environment API yang memberi fleksibilitas lebih besar bagi para perancang adapter serverless dan edge.
Penataan Ulang Variabel Lingkungan dan Pipeline Error Terpadu
Pengelolaan data sensitif dan konfigurasi lingkungan ikut mengalami perombakan terarah. Modul legasi $env/static/private, $env/dynamic/private, dan varian publiknya kini mulai didepresiasi untuk digantikan oleh skema explicit environment variables yang dikelompokkan di bawah modul $app/env/*. Sistem baru ini memungkinkan pengembang mendefinisikan skema dan tipe variabel lingkungan di satu tempat terpusat serta menyediakan fungsi validator bawaan guna mencegah kebocoran secret atau kegagalan booting server akibat variabel lingkungan yang tidak lengkap.
Sistem penanganan error pada SvelteKit 3 juga disatukan ke dalam satu pintu. Pada versi sebelumnya, pemanggilan utilitas error() yang dibuat secara eksplisit di fungsi load atau endpoint sering kali melewati hook handleError. Pada SvelteKit 3, seluruh kegagalan aplikasi—baik yang terjadi akibat exception tak terduga maupun error HTTP terencana—akan dialirkan melalui hook handleError. Peningkatan ini mempermudah pencatatan log telemetri dan audit keamanan secara terpusat. Selain itu, SvelteKit 3 kini menerapkan sourcemap langsung ke pelacakan stack trace di lingkungan produksi guna mempermudah proses debugging aplikasi aktif.
Modernisasi Service Worker, Form Actions, dan Status Remote Functions
Sektor aplikasi web progresif (PWA) mendapatkan pembaruan dengan penetapan modul JavaScript native (type: 'module') sebagai standar registrasi service worker. Modul lama $service-worker resmi dihapus dan dialihkan ke $app/service-worker, menghilangkan boilerplate skrip lawas yang tidak lagi selaras dengan standar browser modern.
Pada modul antarmuka formulir, penanganan respons dari fungsi fail() di form actions kini secara konsisten mempertahankan kode status HTTP kegagalan yang dikembalikan, alih-alih menimpanya menjadi status umum. SvelteKit 3 juga memperketat keamanan pertukaran data web dengan melarang pengiriman formulir lintas domain (cross-origin form submission) yang tidak menyertakan header Content-Type valid. Navigasi programatik goto() turut disederhanakan dengan menyatukan opsi noScroll dan keepFocus ke dalam parameter reset.
Terkait fitur remote functions—fasilitas pemanggilan fungsi server bertipe aman (type-safe RPC) tanpa perlu mendefinisikan endpoint API manual—tim pengembang Svelte menegaskan bahwa fitur ini masih berstatus eksperimental di bawah opsi experimental.remoteFunctions. Pemanfaatannya bergantung pada kesiapan fitur Async Svelte yang memungkinkan sintaks await langsung di tingkat atas komponen dan fungsi turunan, sehingga implementasi stabilnya masih ditargetkan pada pembaruan minor SvelteKit berikutnya.
Migrasi Terpandu Melalui sv 1.0
Untuk mempermudah transisi kode yang telah dibangun di atas SvelteKit versi 2, tim Svelte menyediakan utilitas pembaruan otomatis terintegrasi melalui perintah npx sv migrate sveltekit-3 --tasks all --confirm. Perintah ini secara otomatis menyusun ulang konfigurasi berkas, memperbarui entri package.json, memodifikasi impor modul, serta menandai bagian logika yang memerlukan penyesuaian manual oleh pengembang.
Rilis SvelteKit 3 mempertegas pendekatan pragmatis tim pengembang: mengurangi lapisan abstraksi unik internal dan mempercayakan fungsionalitas inti pada standar platform web yang telah matang.
Sumber https://svelte.dev/blog/sveltekit-3-is-here
Sumber tambahan: https://github.com/sveltejs/kit/releases/tag/%40sveltejs%2Fkit%403.0.0
Sumber tambahan: https://svelte.dev/docs/kit/migrating-to-sveltekit-3