Skip to main content

Command Palette

Search for a command to run...

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

Updated
โ€ข3 min read
๐Ÿ“„ Panduan index.html dalam Vite: Apa yang Boleh, Tidak Boleh, dan Rekomendasinya
A

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

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?


๐Ÿง  Apa Itu 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.


โœ… Apa yang Boleh Dilakukan pada index.html

Berikut hal-hal yang boleh dan didukung secara resmi:

1. โœ… Ditempatkan di Root Project

/project-root/
โ”œโ”€โ”€ index.html    โœ… default dan direkomendasikan
โ”œโ”€โ”€ vite.config.ts
โ”œโ”€โ”€ src/
โ”‚   โ””โ”€โ”€ main.ts

Vite akan otomatis mendeteksi dan menjalankan file ini saat vite dev.


2. โœ… Menggunakan <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.


3. โœ… Inject env dan base secara otomatis

<script type="module">
  console.log(import.meta.env.BASE_URL)
</script>

4. โœ… Multi-page support (jika dikonfigurasi di vite.config.ts)

Kamu bisa punya banyak file HTML seperti about.html, dashboard.html, dll โ€” asalkan ditentukan di rollupOptions.input.


โŒ Apa yang Tidak Boleh / Tidak Disarankan

1. โŒ Meletakkan 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.

2. โŒ Menggunakan Syntax HTML yang Tidak Valid atau Conflict dengan ESM

Misalnya, script biasa tanpa type="module":

<!-- โš ๏ธ Ini tidak akan digunakan sebagai ESM entry -->
<script src="/main.js"></script>

3. โŒ Menambahkan Script Build Tools Langsung di HTML

Vite tidak mengizinkan eksekusi script non-browser (Node.js tools) langsung dari HTML seperti:

<script src="node_modules/..."> <!-- โŒ Tidak jalan -->

โš™๏ธ Jika Harus Pindahkan ke 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.


๐Ÿงญ Rekomendasi Terbaik

Tujuan KamuRekomendasi
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

๐Ÿ“Œ Kesimpulan

  • 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.

More from this blog

F

Finlup ID | Sharing dunia teknologi dan coding

206 posts

Membedah Tren dan Teknologi yang Mengubah Dunia.