Ajukan pertanyaan Anda dan dapatkan ringkasan dokumen dengan merujuk halaman ini dan penyedia AI pilihan Anda
Dokumen ini sudah usang, versi dasar telah diperbarui pada 25 Juni 2026.
Buka dokumen bahasa InggrisRiwayat Versi
- "Init doc"v8.0.021/1/2026
Konten halaman ini diterjemahkan menggunakan AI.
Lihat versi terakhir dari konten aslinya dalam bahasa InggrisJika Anda memiliki ide untuk meningkatkan dokumentasi ini, silakan berkontribusi dengan mengajukan pull request di GitHub.
Tautan GitHub ke dokumentasiSalin Markdown dokumentasi ke clipboard
Dokumentasi Plugin intlayerPrune untuk Vite
Plugin Vite intlayerPrune digunakan untuk melakukan tree-shaking dan memangkas kamus yang tidak terpakai dari bundle aplikasi Anda. Ini membantu mengurangi ukuran bundle akhir dengan hanya menyertakan konten multibahasa yang diperlukan.
Plugin sudah disertakan dan dikonfigurasi secara otomatis ketika Anda menggunakan intlayer(). Anda hanya perlu mendaftarkannya secara manual jika Anda menyusun plugin stack sendiri.
Penggunaan
Sebagai bagian dari intlayer() (direkomendasikan)
Aktifkan pruning melalui konfigurasi Intlayer Anda dan plugin utama menangani semuanya:
Salin kode ke clipboard
Salin kode ke clipboard
Standalone
Jika Anda menyusun stack plugin secara manual, intlayerPrune dan intlayerMinify berbagi objek PruneContext yang harus dibuat sekali dan dilewatkan ke keduanya:
Salin kode ke clipboard
Cara Kerjanya
1. Analisis Penggunaan (buildStart)
Selama buildStart, plugin intlayerOptimize (juga bagian dari intlayer()) memindai setiap file sumber komponen yang tercantum dalam build.filesList. Untuk setiap panggilan useIntlayer('key') atau getIntlayer('key'), plugin ini mencatat dengan tepat bidang mana yang diakses, misalnya:
Salin kode ke clipboard
Ini membangun pruneContext.fieldUsageMap sebelum panggilan transform apa pun dijalankan.
2. JSON pruning (transform, enforce: 'pre')
Ketika Vite memproses file JSON kamus yang telah dikompilasi, intlayerPrune mencegat sebelum konversi JSON → ESM bawaan Vite. Ini membaca peta penggunaan field dari pruneContext dan menghapus setiap field konten yang tidak ada dalam set penggunaan yang tercatat.
Dua bentuk konten didukung:
- Static dictionaries —
{ nodeType: "translation", translation: { en: {...}, fr: {...} } }. Field dipangkas per-locale di dalamtranslation. - Dynamic (per-locale) dictionaries — flat
{ fieldA: ..., fieldB: ... }. Field dipangkas di tingkat atas.
3. Kasus Edge Cases
Jika struktur konten kamus tidak dapat dikenali (misalnya, bentuk nested yang tidak biasa), kamus tersebut ditambahkan ke pruneContext.dictionariesWithEdgeCases dan dibiarkan tanpa diubah. Peringatan dicatat. intlayerMinify juga melewati kamus-kamus ini.
4. Field-rename map
Ketika pruning berhasil, intlayerPrune juga menulis pruneContext.dictionaryKeyToFieldRenameMap — sebuah pemetaan dari nama field asli ke alias pendek. intlayerMinify membaca peta ini untuk mengubah nama field dalam output JSON, dan Babel rename pass milik intlayerOptimize memperbarui akses properti dalam file sumber sesuai dengan itu.
Kondisi Aktivasi
intlayerPrune aktif hanya ketika semua kondisi berikut terpenuhi:
- Perintah Vite adalah
build. build.optimizeadalahtrue(atauundefined, yang secara default adalahtrueuntuk build).build.purgeadalahtruedalam konfigurasi Intlayer Anda.
Proses ini tetap aktif ketika editor.enabled bernilai true: Visual editor menyelesaikan setiap pengeditan melalui dictionaryKey + keyPath terhadap kamus yang belum digabung, yang tidak pernah disentuh oleh plugin ini, dan field yang dipangkas adalah field yang tidak dibaca oleh komponen mana pun — sehingga tidak pernah dirender maupun dapat dipilih di halaman.
