Pose una domanda e ottieni un riassunto del documento facendo riferimento a questa pagina e al provider AI di tua scelta
Cronologia delle versioni
- "Integrato in intlayer(); init doc"v9.0.025/06/2026
Il contenuto di questa pagina è stato tradotto con un'IA.
Vedi l'ultima versione del contenuto originale in ingleseIf 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 è un plugin Vite che scansiona i file sorgente dei componenti alla ricerca di dichiarazioni di contenuto Intlayer inline — contenuto definito direttamente all'interno di un componente anziché in un file .content.ts separato — e le scrive nei file JSON del dizionario durante la fase di trasformazione.
A partire da Intlayer v9intlayerCompilerè incluso automaticamente all'interno del plugin principaleintlayer()quando siacompiler.enabledètruesiacompiler.outputè impostato nella configurazione Intlayer. È necessario registrarlo separatamente solo se si desidera il controllo completo sulla configurazione specifica del compilatore.
Utilizzo
Come parte di intlayer() (consigliato, v9+)
Abilita il compilatore tramite la configurazione di Intlayer:
Copiare il codice nella clipboard
// intlayer.config.tsimport { defineConfig } from "intlayer";export default defineConfig({ compiler: { enabled: true, output: "./src/dictionaries", // dove vengono scritti i dizionari estratti },});Quindi usa il plugin standard senza alcuna registrazione aggiuntiva:
Copiare il codice nella clipboard
// vite.config.tsimport { defineConfig } from "vite";import { intlayer } from "vite-intlayer";export default defineConfig({ plugins: [intlayer()],});Standalone (quando necessario)
Copiare il codice nella clipboard
// vite.config.tsimport { defineConfig } from "vite";import { intlayerCompiler } from "vite-intlayer";export default defineConfig({ plugins: [intlayerCompiler()],});Opzioni
Copiare il codice nella clipboard
import type { IntlayerCompilerOptions } from "vite-intlayer";Apri la tabella in una finestra modale per visualizzare tutti i dati in modo chiaro
| Opzione | Tipo | Descrizione |
|---|---|---|
configOptions | GetConfigurationOptions | Sostituzioni della configurazione Intlayer inoltrate a getConfiguration(). |
compilerConfig | Partial<CompilerConfig> | Sostituzioni per la sezione di configurazione specifica del compilatore (es. enabled, output, filesList). |
Esempio
Copiare il codice nella clipboard
intlayerCompiler({ configOptions: { configFile: "./config/intlayer.config.ts" }, compilerConfig: { enabled: true, output: "./src/dictionaries" },});Come funziona
Fase di trasformazione
Per ogni file sorgente che corrisponde a compiler.filesList, il plugin del compilatore:
- Passa il contenuto del file attraverso
extractContentda@intlayer/babel. - Chiama
onExtractper ogni dichiarazione trovata, scrivendo il JSON del dizionario risultante incompiler.output. - Restituisce il codice sorgente trasformato con le dichiarazioni inline sostituite da chiamate standard
useIntlayer('key')/getIntlayer('key').
Tipi di file supportati: .ts, .tsx, .js, .jsx, .vue, .svelte, .astro.
HMR (Hot Module Replacement)
Quando un file di componente viene salvato in modalità di sviluppo, il compilatore:
- Rileva la modifica del file tramite l'hook
handleHotUpdatedi Vite. - Estrae nuovamente il contenuto dal file aggiornato.
- Scrive il JSON del dizionario aggiornato.
- Attiva un ricaricamento completo della pagina (
server.ws.send({ type: 'full-reload' })).
Un debounce di 500 ms impedisce alla scrittura stessa del dizionario (che attiva anche un evento di modifica del file) di causare un ciclo di estrazione infinito.
Deduplica
intlayerCompiler utilizza lo stesso meccanismo di deduplica createPrimaryInstanceGuard degli altri plugin inclusi. Quando sono presenti sia intlayer() (che include il compilatore) sia una chiamata manuale a intlayerCompiler(), viene eseguita solo la prima istanza registrata — nessun dizionario viene scritto due volte.