๐ Panduan index.html dalam Vite: Apa yang Boleh, Tidak Boleh, dan Rekomendasinya

I am an enthusiastic researcher and developer with a passion for using technology to innovate in business and education.
Search for a command to run...

I am an enthusiastic researcher and developer with a passion for using technology to innovate in business and education.
No comments yet. Be the first to comment.
Ringkasan: Jika OpenClaw adalah AI Operating System yang menghubungkan berbagai layanan dan agent, maka Hermes adalah AI Worker yang fokus mengerjakan pekerjaan, belajar dari pengalaman, dan semakin p

Ketika membangun aplikasi modern seperti Next.js, Cloudflare Workers, platform AI, microservices, atau real-time dashboard, ada banyak istilah jaringan yang sering muncul: TCP, UDP, HTTP/2, QUIC, WebS

Setiap tahun, ribuan mahasiswa jurusan Teknologi Informasi, Sistem Informasi, dan Teknik Informatika diwisuda. Namun, tidak sedikit di antara mereka yang kemudian menghadapi kenyataan yang cukup berat

Jika Anda menggunakan Next.js, kemungkinan besar Anda pernah mendengar anggapan bahwa: "Next.js = Vercel" Padahal kenyataannya tidak harus demikian. Di sinilah OpenNext hadir. OpenNext adalah proyek

Saat pertama kali mencoba OpenCode Go, saya hampir langsung berlangganan tanpa membaca detail program yang mereka sediakan. Untungnya saya menemukan bahwa OpenCode memiliki program referral yang membe

Vite adalah build tool modern yang menggabungkan simplicity HTML + kekuatan ESM + performa super cepat. Salah satu bagian penting dari proyek Vite adalah file index.html.
Tapi, apakah kamu tahu bahwa index.html di Vite bukan file HTML biasa?
index.html di Vite?Berbeda dari proyek frontend tradisional, Vite memproses index.html secara spesial:
Sebagai entry point utama aplikasi.
Mendukung template injection seperti %-style atau env variables.
Bisa menyertakan <script type="module"> yang menjadi entry ESM.
index.htmlBerikut hal-hal yang boleh dan didukung secara resmi:
/project-root/
โโโ index.html โ
default dan direkomendasikan
โโโ vite.config.ts
โโโ src/
โ โโโ main.ts
Vite akan otomatis mendeteksi dan menjalankan file ini saat
vite dev.
<script type="module" src="/main.ts"><script type="module" src="/main.ts"></script>
Vite akan membaca file ini dan menggunakannya sebagai entry point module bundling.
env dan base secara otomatis<script type="module">
console.log(import.meta.env.BASE_URL)
</script>
vite.config.ts)Kamu bisa punya banyak file HTML seperti about.html, dashboard.html, dll โ asalkan ditentukan di rollupOptions.input.
index.html di Dalam src/ Tanpa Konfigurasi/project-root/
โโโ src/
โ โโโ index.html โ tidak akan dikenali tanpa config
Tanpa konfigurasi root dan rollupOptions, Vite tidak akan tahu ini adalah entry.
Misalnya, script biasa tanpa type="module":
<!-- โ ๏ธ Ini tidak akan digunakan sebagai ESM entry -->
<script src="/main.js"></script>
Vite tidak mengizinkan eksekusi script non-browser (Node.js tools) langsung dari HTML seperti:
<script src="node_modules/..."> <!-- โ Tidak jalan -->
src/?Kamu boleh saja pindahkan index.html ke dalam src/, asal kamu tahu konsekuensinya dan mengubah config Vite:
// vite.config.ts
import { defineConfig } from 'vite'
import { resolve } from 'path'
export default defineConfig({
root: 'src',
build: {
outDir: '../dist',
rollupOptions: {
input: resolve(__dirname, 'src/index.html'),
},
},
})
Tapi ini tidak disarankan untuk pemula, karena akan merusak konvensi default dan menambah kompleksitas tidak perlu.
| Tujuan Kamu | Rekomendasi |
| Setup biasa (SPA / React / Vue) | โ
Simpan index.html di root project |
| Butuh struktur bersih | โ
Simpan main.ts & asset di src/, HTML tetap di root |
| Butuh banyak halaman (MPA) | โ
Gunakan rollupOptions.input untuk HTML lainnya |
| Pakai Bun + Vite | โ Tidak ada masalah, tetap ikuti struktur Vite |
Pindah HTML ke src/ | ๐ซ Hindari kecuali kamu sudah paham konfigurasi penuh |
index.html adalah file spesial di Vite yang menjadi entry utama aplikasi.
Harus diletakkan di root project agar dideteksi otomatis.
Tidak perlu plugin tambahan untuk menggunakannya.
Boleh dipindahkan ke src/, tapi harus mengatur vite.config.ts secara eksplisit.
Untuk pengalaman terbaik: ikuti konvensi default Vite.