Posez votre question et obtenez un résumé du document en referencant cette page et le Provider AI de votre choix
Historique des versions
- "Intégré dans intlayer() ; initialisation de la doc"v9.0.025/06/2026
Le contenu de cette page a été traduit à l'aide d'une IA.
Voir la dernière version du contenu original en anglaisIf 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 est un plugin Vite qui scanne les fichiers sources des composants à la recherche de déclarations de contenu Intlayer en ligne — du contenu défini directement à l'intérieur d'un composant plutôt que dans un fichier .content.ts séparé — et les écrit dans des fichiers JSON de dictionnaire pendant la phase de transformation.
Depuis Intlayer v9,intlayerCompilerest automatiquement inclus dans le plugin principalintlayer()lorsquecompiler.enabledest àtrueet quecompiler.outputest défini dans votre configuration Intlayer. Vous n'avez besoin de l'enregistrer séparément que si vous souhaitez un contrôle total sur la configuration spécifique au compilateur.
Utilisation
En tant que partie de intlayer() (recommandé, v9+)
Activez le compilateur via votre configuration Intlayer :
Copier le code dans le presse-papiers
// intlayer.config.tsimport { defineConfig } from "intlayer";export default defineConfig({ compiler: { enabled: true, output: "./src/dictionaries", // où les dictionnaires extraits sont écrits },});Ensuite, utilisez le plugin standard sans enregistrement supplémentaire :
Copier le code dans le presse-papiers
// vite.config.tsimport { defineConfig } from "vite";import { intlayer } from "vite-intlayer";export default defineConfig({ plugins: [intlayer()],});Autonome (si nécessaire)
Copier le code dans le presse-papiers
// vite.config.tsimport { defineConfig } from "vite";import { intlayerCompiler } from "vite-intlayer";export default defineConfig({ plugins: [intlayerCompiler()],});Options
Copier le code dans le presse-papiers
import type { IntlayerCompilerOptions } from "vite-intlayer";Ouvrir le tableau dans une fenêtre modale pour voir tout le contenu clairement
| Option | Type | Description |
|---|---|---|
configOptions | GetConfigurationOptions | Surcharges de configuration Intlayer transmises à getConfiguration(). |
compilerConfig | Partial<CompilerConfig> | Surcharges pour la section de configuration spécifique au compilateur (ex. enabled, output, filesList). |
Exemple
Copier le code dans le presse-papiers
intlayerCompiler({ configOptions: { configFile: "./config/intlayer.config.ts" }, compilerConfig: { enabled: true, output: "./src/dictionaries" },});Comment ça fonctionne
Phase de transformation
Pour chaque fichier source qui correspond à compiler.filesList, le plugin du compilateur :
- Passe le contenu du fichier via
extractContentde@intlayer/babel. - Appelle
onExtractpour chaque déclaration trouvée, ce qui écrit le JSON du dictionnaire résultant danscompiler.output. - Renvoie le code source transformé avec les déclarations en ligne remplacées par des appels standard
useIntlayer('key')/getIntlayer('key').
Types de fichiers pris en charge : .ts, .tsx, .js, .jsx, .vue, .svelte, .astro.
HMR (Hot Module Replacement)
Lorsqu'un fichier de composant est enregistré en mode développement, le compilateur :
- Détecte le changement de fichier via le hook
handleHotUpdatede Vite. - Extrait à nouveau le contenu du fichier mis à jour.
- Écrit le JSON du dictionnaire mis à jour.
- Déclenche un rechargement complet de la page (
server.ws.send({ type: 'full-reload' })).
Un debounce de 500 ms empêche l'écriture du dictionnaire elle-même (qui déclenche également un événement de modification de fichier) de provoquer une boucle d'extraction infinie.
Dédoublonnage
intlayerCompiler utilise le même mécanisme de dédoublonnage createPrimaryInstanceGuard que les autres plugins intégrés. Lorsque intlayer() (qui intègre le compilateur) et un appel manuel à intlayerCompiler() sont tous deux présents, seule la première instance enregistrée s'exécute — aucun dictionnaire n'est écrit deux fois.