Engineering
Vite Untuk Pemula
Panduan lengkap menggunakan Vite untuk pemula
Bayangkan menunggu 30 detik setiap kali membuka project JavaScript. Itu realita developer yang pakai Webpack bertahun-tahun. Lalu Vite datang ā startup dev server dalam hitungan milidetik. Artikel ini membahas Vite dari nol: apa itu, kenapa penting, dan cara memulainya hari ini.
Apa Itu Vite?
Vite (dibaca "vit", bahasa Prancis untuk "cepat") adalah build tool untuk pengembangan web modern. Evan You ā orang yang sama di balik Vue.js ā menciptakan alat ini pada 2020 karena frustrasi dengan startup lambat Webpack pada project besar.
Berbeda dari bundler tradisional, Vite memanfaatkan native ES modules yang sudah didukung browser modern. Hasnya: dev server nyala dalam hitungan milidetik, bukan menit. Saat Anda menyimpan perubahan kode, perubahan tersebut langsung muncul di browser tanpa reload halaman penuh ā fitur yang disebut Hot Module Replacement (HMR).
Dua komponen utama Vite:
- Dev server ā melayani file melalui native ES modules, dengan dependency pre-bundling menggunakan esbuild (ditulis dalam Go, 10-100x lebih cepat dari JavaScript bundler)
- Build command ā mem-bundle kode untuk produksi menggunakan Rollup/Rolldown (berbasis Rust), menghasilkan output yang ter-optimasi untuk deployment
Mengapa Vite Lebih Cepat dari Webpack?
Webpack harus mem-bundle seluruh project sebelum dev server bisa dimulai. Pada project dengan ribuan modul, proses ini memakan waktu 30 detik hingga beberapa menit. Vite menghilangkan bottleneck tersebut.
Perbandingan startup dev server pada project React dengan 1.000+ modul:
- Webpack: 24-45 detik startup, HMR 1-3 detik per perubahan
- Vite: 200-500 milidetik startup, HMR di bawah 50 milidetik
Rahasianya ada pada arsitektur berbeda. Saat browser meminta file, Vite melayani modul secara on-demand ā hanya file yang diminta yang di-transform. Dependency besar seperti React atau Vue di-pre-bundle sekali dan di-cache. Hasilnya, startup tetap cepat meski project makin besar.
Perbandingan HMR juga dramatis. Webpack perlu me-rebuild sebagian besar bundle setiap kali ada perubahan. Vite hanya mengirim modul yang berubah, plus invalidation chain yang presisi. Pada project Vue/React dengan 500+ komponen, perbedaan ini terasa sangat signifikan.
Fitur Utama yang Wajib Diketahui
Native ES Modules
Vite tidak mem-bundle kode untuk development. Browser menerima modul JavaScript asli ā persis seperti yang Anda tulis. Ini berarti tidak ada source map yang rumit, tidak ada transformasi berlebihan. Yang Anda lihat di DevTools adalah kode Anda, satu-ke-satu.
Hot Module Replacement (HMR)
HMR Vite bekerja berbeda dari Webpack. Ketika Anda mengubah satu komponen React atau Vue, hanya komponen tersebut yang di-update di browser. State aplikasi tetap terjaga ā form yang sedang diisi, scroll position, data yang sudah dimuat ā semua tetap ada. Tidak perlu klik refresh.
Framework Agnostic
Vite mendukung semua framework populer melalui template bawaan dan plugin system:
- React ā template vanilla React dan React + TypeScript
- Vue ā template Vue 3 dengan script setup
- Svelte ā integrasi native dengan SvelteKit
- Solid ā template SolidJS
- Preact, Lit, Qwik, Angular ā semua tersedia
Plugin system memungkinkan integrasi dengan tooling apapun. Perlu CSS module, SVG component, atau custom transform? Plugin Vite bisa menangani semuanya.
TypeScript Out of the Box
TypeScript langsung bekerja tanpa konfigurasi tambahan. Vite menggunakan esbuild untuk transpilasi TypeScript ā proses yang 20-30x lebih cepat dari tsc. Tidak perlu tsconfig khusus, tidak perlu babel plugin. Tinggal ganti ekstensi file ke .ts atau .tsx, dan semuanya berjalan.
CSS Modules dan Preprocessor
Import file CSS langsung bekerja. Tambahkan ekstensi .module.css untuk CSS Modules otomatis. Untuk Sass, kurangi, atau PostCSS ā cukup install package-nya, Vite mendeteksi secara otomatis.
Memulai Project Vite dari Nol
Membuat project Vite baru membutuhkan satu perintah. Tidak ada wizard berbelit, tidak ada konfigurasi 500 baris.
// Advertisement
Langkah 1: Buat Project
# Buat project baru dengan template React + TypeScript
npm create vite@latest my-app -- --template react-ts
# Masuk ke direktori project
cd my-app
# Install dependencies
npm install
# Jalankan dev server
npm run dev
Dev server langsung nyala di http://localhost:5173. Dari titik nol sampai server berjalan ā kurang dari 10 detik.
Langkah 2: Struktur Project
Project Vite punya struktur yang sederhana dan intuitif:
my-app/
āāā index.html ā Entry point (di root, bukan di public/)
āāā src/
ā āāā main.tsx ā Entry JavaScript/TypeScript
ā āāā App.tsx ā Komponen utama
ā āāā App.css ā Styles
āāā public/ ā Static assets
āāā package.json
āāā tsconfig.json ā TypeScript config (jika template TS)
āāā vite.config.ts ā Konfigurasi Vite
Perbedaan penting dari Create React App: index.html berada di root project, bukan di folder public. Ini karena Vite memproses HTML sebagai bagian dari build pipeline ā Anda bisa menambahkan EJS template atau plugin transformasi di dalamnya.
Langkah 3: Konfigurasi Dasar
// vite.config.ts
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
export default defineConfig({
plugins: [react()],
server: {
port: 3000, // Port custom
open: true, // Auto-open browser
},
build: {
outDir: 'dist', // Output folder untuk production
sourcemap: true, // Generate source maps
},
})
Konfigurasi di atas sudah cukup untuk kebanyakan project. Dibandingkan Webpack yang butuh ratusan baris config, ini perbedaan yang sangat terasa.
Build untuk Production
Saat Anda siap deploy, satu perintah menghasilkan bundle produksi yang ter-optimasi:
npm run build
Vite menghasilkan output di folder dist/ dengan:
- Code splitting otomatis ā setiap route jadi chunk terpisah
- Tree shaking ā kode yang tidak dipakai dihapus
- Asset optimization ā gambar, font, CSS di-minify
- CSS code splitting ā CSS dimuat per halaman, bukan satu file besar
- Async chunk loading ā modul dimuat saat dibutuhkan
Untuk preview hasil build secara lokal:
npm run preview
Perkembangan terbaru: Vite kini menggunakan Rolldown ā bundler berbasis Rust yang menggantikan Rollup. Kecepatan build naik 3-5x untuk project besar. Rolldown juga membawa fitur baru seperti improved tree shaking dan better chunk splitting.
Perbandingan dengan Alternatif
Beberapa tool sering dibandingkan dengan Vite:
- Webpack ā Paling fleksibel tapi paling lambat. Cocok untuk project legacy yang butuh plugin ekstensif. Startup 24x lebih lambat dari Vite pada project besar.
- Turbopack ā Dibuat oleh Vercel untuk Next.js. Berbasis Rust, sangat cepat. Tapi terikat ekosistem Next.js, tidak bisa dipakai mandiri.
- esbuild ā Sangat cepat (ditulis dalam Go). Tapi fitur plugin terbatas dan tidak punya dev server dengan HMR. Vite justru pakai esbuild di belakang layar.
- Parcel ā Zero-config seperti Vite tapi lebih lambat. Komunitas dan plugin ecosystem lebih kecil.
Vite unggul di kombinasi kecepatan, fleksibilitas, dan kemudahan. Ekosistem plugin-nya yang besar dan dukungan multi-framework membuatnya jadi pilihan default untuk project baru di 2026.
Bagi yang tertarik dengan tren pengembangan web terbaru, baca juga Tren Web Development 2026: AI Mengubah Cara Membangun Website.
Integrasi dengan Framework Populer
React
npm create vite@latest my-react-app -- --template react-ts
Vite + React adalah kombinasi paling populer. @vitejs/plugin-react menangani Fast Refresh (versi HMR untuk React). Tanpa perlu react-scripts ā ringan dan cepat.
Vue
npm create vite@latest my-vue-app -- --template vue-ts
Vue dan Vite adalah pasangan natural ā Evan You membuat keduanya. Vue SFC (Single File Component) langsung di-compile tanpa konfigurasi. SvelteKit dan Nuxt juga dibangun di atas Vite.
Svelte
npm create vite@latest my-svelte-app -- --template svelte-ts
Svelte compiler terintegrasi sempurna. HMR bekerja untuk setiap reactive statement dan component update.
Untuk yang ingin membangun full-stack app modern dengan React, baca juga React Server Components: Panduan Lengkap Arsitektur Modern React 2026.
Optimasi dan Best Practices
// Advertisement
Dependency Pre-Bundling
Vite secara otomatis pre-bundle dependencies besar menggunakan esbuild. Ini menghindari "dependency flooding" ā ratusan request kecil yang memperlambat dev server. Jika ada dependency yang perlu di-pre-bundle secara manual:
// vite.config.ts
export default defineConfig({
optimizeDeps: {
include: ['lodash-es', 'date-fns'],
},
})
Environment Variables
Vite membaca variabel environment dari file .env dengan prefix VITE_:
# .env.local
VITE_API_URL=https://api.example.com
VITE_APP_VERSION=1.0.0
// Akses di kode
const apiUrl = import.meta.env.VITE_API_URL
const version = import.meta.env.VITE_APP_VERSION
Hanya variabel dengan prefix VITE_ yang terekspos ke client. Ini fitur keamanan yang mencegah secret bocor ke browser.
Path Alias
// vite.config.ts
import { resolve } from 'path'
export default defineConfig({
resolve: {
alias: {
'@': resolve(__dirname, 'src'),
},
},
})
Sekarang Anda bisa import dengan path absolut: import Button from '@/components/Button' alih-alih relative path yang berbelit.
Tips optimasi build Docker untuk production deployment bisa ditemukan di Optimasi Build Docker Next.js Produksi ā prinsipnya sama untuk Vite.
Pertanyaan yang Sering Diajukan (FAQ)
Apakah Vite cocok untuk project production?
Sangat cocok. Banyak perusahaan besar seperti GitLab, Laravel, dan Nuxt menggunakan Vite di production. Build output-nya ter-optimasi dengan code splitting, tree shaking, dan asset hashing.
Bisakah migrasi dari Webpack ke Vite?
Bisa, tapi butuh penyesuaian. Beberapa plugin Webpack tidak punya padanan Vite. Proses umum: install Vite, pindahkan config dari webpack.config.js ke vite.config.ts, ganti loader dengan plugin Vite, dan test HMR. Untuk project kecil-sedang, migrasi bisa selesai dalam 1-2 hari.
Apakah Vite mendukung SSR (Server-Side Rendering)?
Ya. Vite punya built-in SSR support melalui API createServer. Framework seperti Nuxt 3 dan SvelteKit memanfaatkan ini. Anda juga bisa membuat custom SSR setup dengan Express atau Fastify.
Bagaimana cara handle CSS dan asset di Vite?
Import CSS langsung di JavaScript: import './style.css'. Untuk gambar, import dan gunakan sebagai src: import logo from './logo.png'. Vite meng-handle hashing, optimization, dan lazy loading secara otomatis.
Vite vs Turbopack ā mana yang lebih baik?
Tergantung kebutuhan. Turbopack lebih cepat untuk Next.js karena terintegrasi langsung. Vite lebih fleksibel ā bisa dipakai dengan framework apapun. Jika Anda pakai React tanpa Next.js, Vite adalah pilihan terbaik.
Kesimpulan
Vite mengubah cara developer membangun web. Startup instan, HMR secepat kilat, dan konfigurasi minimal ā semua ini tanpa mengorbankan fitur production. Dukungan untuk semua framework utama dan ekosistem plugin yang terus berkembang menjadikannya tool yang relevan untuk tahun-tahun ke depan.
Untuk pemula yang baru mulai belajar pengembangan web: mulai dengan Vite, bukan Webpack. Dokumentasinya jelas, komunitasnya besar, dan pengembangannya jauh lebih menyenangkan.
Butuh website yang cepat dan modern?
VyuApp membangun aplikasi web bespoke dengan teknologi terkini. Dari konsep hingga deploy.
Kunjungi VyuAppSumber Referensi
- Vite Official Documentation ā Getting Started. https://vite.dev/guide/
- Why Vite ā Vite Official. https://vite.dev/guide/why
- Better Stack ā Vite.js: A Beginner's Guide. https://betterstack.com/community/guides/scaling-nodejs/vitejs-explained/
- Syncfusion ā Vite vs Webpack: Choosing the Right Bundler. https://www.syncfusion.com/blogs/post/webpack-vs-vite-bundler-comparison
- GeeksforGeeks ā Getting Started with Vite. https://www.geeksforgeeks.org/javascript/getting-started-with-vite/
Image Attribution
// Advertisement
VyuApp Studio
Bespoke web engineering ā Garut, ID