Ajukan pertanyaan Anda dan dapatkan ringkasan dokumen dengan merujuk halaman ini dan penyedia AI pilihan Anda
Riwayat Versi
- "Dibundel ke dalam intlayer(); inisialisasi dokumen"v9.0.025/6/2026
Konten halaman ini diterjemahkan menggunakan AI.
Lihat versi terakhir dari konten aslinya dalam bahasa InggrisIf you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
intlayerCompiler
intlayerCompiler adalah plugin Vite yang memindai file sumber komponen untuk deklarasi konten Intlayer inline — konten yang ditentukan secara langsung di dalam komponen alih-alih di file .content.ts terpisah — dan menulisnya ke file JSON kamus selama fase transform.
Sejak Intlayer v9intlayerCompilersecara otomatis disertakan di dalam plugin utamaintlayer()ketikacompiler.enabledbernilaitruedancompiler.outputdiatur dalam konfigurasi Intlayer Anda. Anda hanya perlu mendaftarkannya secara terpisah ketika Anda ingin kontrol penuh atas konfigurasi khusus kompilator.
Penggunaan
Sebagai bagian dari intlayer() (direkomendasikan, v9+)
Aktifkan kompilator melalui konfigurasi Intlayer Anda:
Salin kode ke clipboard
// intlayer.config.tsimport { defineConfig } from "intlayer";export default defineConfig({ compiler: { enabled: true, output: "./src/dictionaries", // tempat kamus yang diekstrak ditulis },});Kemudian gunakan plugin standar tanpa registrasi tambahan:
Salin kode ke clipboard
// vite.config.tsimport { defineConfig } from "vite";import { intlayer } from "vite-intlayer";export default defineConfig({ plugins: [intlayer()],});Mandiri (bila diperlukan)
Salin kode ke clipboard
// vite.config.tsimport { defineConfig } from "vite";import { intlayerCompiler } from "vite-intlayer";export default defineConfig({ plugins: [intlayerCompiler()],});Opsi
Salin kode ke clipboard
import type { IntlayerCompilerOptions } from "vite-intlayer";Buka tabel dalam modal untuk melihat semua isi data dengan jelas
| Opsi | Tipe | Deskripsi |
|---|---|---|
configOptions | GetConfigurationOptions | Override konfigurasi Intlayer yang diteruskan ke getConfiguration(). |
compilerConfig | Partial<CompilerConfig> | Override untuk bagian konfigurasi khusus kompilator (misalnya enabled, output, filesList). |
Contoh
Salin kode ke clipboard
intlayerCompiler({ configOptions: { configFile: "./config/intlayer.config.ts" }, compilerConfig: { enabled: true, output: "./src/dictionaries" },});Cara kerjanya
Fase Transform
Untuk setiap file sumber yang cocok dengan compiler.filesList, plugin kompilator:
- Meneruskan konten file melalui
extractContentdari@intlayer/babel. - Memanggil
onExtractuntuk setiap deklarasi yang ditemukan, yang menulis JSON kamus yang dihasilkan kecompiler.output. - Mengembalikan kode sumber yang ditransformasikan dengan deklarasi inline yang digantikan oleh panggilan standar
useIntlayer('key')/getIntlayer('key').
Jenis file yang didukung: .ts, .tsx, .js, .jsx, .vue, .svelte, .astro.
HMR (Hot Module Replacement)
Ketika file komponen disimpan dalam mode pengembangan, kompilator:
- Mendeteksi perubahan file melalui hook
handleHotUpdateVite. - Mengekstrak kembali konten dari file yang diperbarui.
- Menulis JSON kamus yang diperbarui.
- Memicu pemuatan ulang halaman penuh (
server.ws.send({ type: 'full-reload' })).
Debounce 500 ms mencegah penulisan kamus itu sendiri (yang juga memicu event perubahan file) menyebabkan lingkaran ekstraksi ulang yang tak terbatas.
Deduplikasi
intlayerCompiler menggunakan mekanisme deduplikasi createPrimaryInstanceGuard yang sama dengan plugin bawaan lainnya. Ketika panggilan intlayer() (yang membundel kompilator) dan panggilan manual intlayerCompiler() ada, hanya instans terdaftar pertama yang berjalan — tidak ada kamus yang ditulis dua kali.