Posez votre question et obtenez un résumé du document en referencant cette page et le Provider AI de votre choix
Ce document n'est pas à jour, la version de base a été mise à jour le 25 juin 2026.
Aller à la doc anglaiseHistorique des versions
- "Init doc"v8.0.021/01/2026
Le contenu de cette page a été traduit à l'aide d'une IA.
Voir la dernière version du contenu original en anglaisSi vous avez une idée d’amélioration pour améliorer cette documentation, n’hésitez pas à contribuer en submitant une pull request sur GitHub.
Lien GitHub de la documentationCopier le Markdown du doc dans le presse-papiers
Documentation du plugin intlayerPrune pour Vite
Le plugin Vite intlayerPrune permet d'effectuer du tree-shaking et de supprimer les dictionnaires inutilisés du bundle de votre application. Cela aide à réduire la taille finale du bundle en n'incluant que le contenu multilingue nécessaire.
Le plugin est déjà inclus et configuré automatiquement lorsque vous utilisez intlayer(). Vous n'avez besoin de l'enregistrer manuellement que si vous composez vous-même la pile de plugins.
Utilisation
Dans le cadre de intlayer() (recommandé)
Activez le pruning via votre configuration Intlayer et le plugin principal gère tout :
Copier le code dans le presse-papiers
Copier le code dans le presse-papiers
Standalone
Si vous composez manuellement la pile de plugins, intlayerPrune et intlayerMinify partagent un objet PruneContext qui doit être créé une seule fois et passé aux deux :
Copier le code dans le presse-papiers
Comment ça marche
1. Analyse d'utilisation (buildStart)
Durante buildStart, le plugin intlayerOptimize (également partie de intlayer()) analyse chaque fichier source de composant listé dans build.filesList. Pour chaque appel useIntlayer('key') ou getIntlayer('key'), il enregistre exactement quels champs sont accédés, par exemple :
Copier le code dans le presse-papiers
Cela construit pruneContext.fieldUsageMap avant que les appels transform ne s'exécutent.
2. Élagage JSON (transform, enforce: 'pre')
Lorsque Vite traite un fichier JSON de dictionnaire compilé, intlayerPrune l'intercepte avant la conversion JSON → ESM intégrée de Vite. Il lit la carte d'utilisation des champs à partir de pruneContext et supprime tout champ de contenu qui ne figure pas dans l'ensemble d'utilisation enregistré.
Deux formes de contenu sont supportées :
- Dictionnaires statiques —
{ nodeType: "translation", translation: { en: {...}, fr: {...} } }. Les champs sont élagués par locale à l'intérieur detranslation. - Dictionnaires dynamiques (par locale) — flat
{ fieldA: ..., fieldB: ... }. Les champs sont élagués au niveau supérieur.
3. Cas limites
Si la structure de contenu d'un dictionnaire ne peut pas être reconnue (par exemple, une forme imbriquée inhabituelle), il est ajouté à pruneContext.dictionariesWithEdgeCases et laissé inchangé. Un avertissement est enregistré. intlayerMinify ignore également ces dictionnaires.
4. Field-rename map
Lorsque l'élagage réussit, intlayerPrune écrit également pruneContext.dictionaryKeyToFieldRenameMap — un mapping entre les noms de champs originaux et leurs alias courts. intlayerMinify lit cette carte pour renommer les champs dans le JSON de sortie, et la passe de renommage Babel d'intlayerOptimize met à jour les accès aux propriétés dans les fichiers sources en conséquence.
Conditions d'activation
intlayerPrune est actif uniquement quand toutes les conditions suivantes sont vraies :
- La commande Vite est
build. build.optimizeesttrue(ouundefined, qui esttruepar défaut pour les builds).build.purgeesttruedans votre configuration Intlayer.
Il reste actif lorsque editor.enabled est true : l'éditeur visuel résout chaque modification via dictionaryKey + keyPath par rapport aux dictionnaires non fusionnés, que ce plugin ne touche jamais, et un champ purgé est un champ qu'aucun composant ne lit — il n'est donc jamais rendu ni sélectionnable dans la page.
