Autore:
    Creazione:2026-06-25Ultimo aggiornamento:2026-06-25

    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 v9 intlayerCompiler è incluso automaticamente all'interno del plugin principale intlayer() quando sia compiler.enabled è true sia compiler.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:

    ts
    // 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:

    ts
    // vite.config.tsimport { defineConfig } from "vite";import { intlayer } from "vite-intlayer";export default defineConfig({  plugins: [intlayer()],});

    Standalone (quando necessario)

    ts
    // vite.config.tsimport { defineConfig } from "vite";import { intlayerCompiler } from "vite-intlayer";export default defineConfig({  plugins: [intlayerCompiler()],});

    Opzioni

    ts
    import type { IntlayerCompilerOptions } from "vite-intlayer";
    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

    ts
    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:

    1. Passa il contenuto del file attraverso extractContent da @intlayer/babel.
    2. Chiama onExtract per ogni dichiarazione trovata, scrivendo il JSON del dizionario risultante in compiler.output.
    3. 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:

    1. Rileva la modifica del file tramite l'hook handleHotUpdate di Vite.
    2. Estrae nuovamente il contenuto dal file aggiornato.
    3. Scrive il JSON del dizionario aggiornato.
    4. 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.