Langsung ke konten utama

Konfigurasi Vite dalam Sistem Multi-tenant

Cara menggunakan Vite untuk mendukung banyak template brand dalam satu repository dengan routing build dinamis dan isolasi environment.


1. Pemilihan template route dinamis berdasarkan SITE_KEY

Saat build, resolve file route tenant yang sesuai lalu hasilkan entry router yang aktif.

function writeBuildRouter(siteKey: string) {
const sourceFile = path.resolve(__dirname, `../../template/${siteKey}/router/routes.ts`);
const destinationFile = path.resolve(__dirname, '../../src/router/build.ts');

const data = fs.readFileSync(sourceFile, 'utf8');
fs.writeFileSync(destinationFile, data, 'utf8');
}

Manfaat:

  • Satu repo untuk banyak template tenant
  • Duplikasi kode lebih rendah
  • Output build disesuaikan untuk satu tenant dalam satu waktu

2. Strategi environment variable

Gunakan file environment yang eksplisit dan validasi saat runtime.

  • .env.development
  • .env.staging
  • .env.production

Ekspos hanya variabel client-safe yang diperlukan dengan kebijakan prefix.

3. Konfigurasi proxy development

Gunakan proxy Vite untuk domain API pada development lokal agar menghindari friksi CORS.

4. Integrasi i18n dan plugin

Integrasikan Vue i18n dan plugin terkait dalam pipeline plugin Vite yang terpusat agar perilaku environment tetap konsisten.

5. Konfigurasi target browser

target: {
browser: ['es2019', 'edge88', 'firefox78', 'chrome87', 'safari13.1'],
node: 'node16',
}

Ini menyeimbangkan sintaks modern dan kompatibilitas yang praktis.

Ringkasan siap wawancara

Dalam sistem multi-tenant, saya menggunakan komposisi build berbasis SITE_KEY, isolasi env yang ketat, dan kebijakan target browser yang eksplisit agar setiap build tenant tetap terprediksi dan mudah dipelihara.