Zadaj pytanie i otrzymaj streszczenie dokumentu, odwołując się do tej strony i wybranego dostawcy AI
Ta dokumentacja jest nieaktualna, wersja bazowa została zaktualizowana w 25 czerwca 2026.
Przejdź do angielskiej wersji dokumentuHistoria wersji
- "Inicjalizacja dokumentacji"v8.0.021.01.2026
Treść tej strony została przetłumaczona przy użyciu sztucznej inteligencji.
Zobacz ostatnią wersję oryginalnej treści w języku angielskimJeśli masz pomysł na ulepszenie tej dokumentacji, zachęcamy do przesłania pull requesta na GitHubie.
Link do dokumentacji na GitHubieKopiuj dokument Markdown do schowka
Dokumentacja wtyczki intlayerPrune dla Vite
Wtyczka Vite intlayerPrune służy do tree-shakingu i usuwania nieużywanych słowników z bundla Twojej aplikacji. Pomaga to zmniejszyć końcowy rozmiar bundla, uwzględniając jedynie niezbędne wielojęzyczne treści.
Plugin jest już automatycznie włączony i skonfigurowany, gdy używasz intlayer(). Musisz go zarejestrować ręcznie tylko wtedy, gdy skomponujesz stos pluginów samodzielnie.
Użycie
W ramach intlayer() (zalecane)
Włącz pruning poprzez konfigurację Intlayer, a główny plugin zajmie się wszystkim:
Skopiuj kod do schowka
Skopiuj kod do schowka
Standalone
Jeśli ręcznie komponujesz stos pluginów, intlayerPrune i intlayerMinify współdzielą obiekt PruneContext, który musi być utworzony raz i przekazany do obu:
Skopiuj kod do schowka
Jak to działa
1. Analiza użycia (buildStart)
Podczas buildStart, plugin intlayerOptimize (również część intlayer()) skanuje każdy plik źródłowy komponentu wymieniony w build.filesList. Dla każdego wywołania useIntlayer('key') lub getIntlayer('key') rejestruje dokładnie, które pola są dostępne, np.:
Skopiuj kod do schowka
To buduje pruneContext.fieldUsageMap przed uruchomieniem jakichkolwiek wywołań transform.
2. JSON pruning (transform, enforce: 'pre')
When Vite processes a compiled dictionary JSON file, intlayerPrune intercepts it before Vite's built-in JSON → ESM conversion. It reads the field-usage map from pruneContext and removes any content field that is not in the recorded usage set.
Two content shapes are supported:
- Static dictionaries —
{ nodeType: "translation", translation: { en: {...}, fr: {...} } }. Fields are pruned per-locale insidetranslation. - Dynamic (per-locale) dictionaries — flat
{ fieldA: ..., fieldB: ... }. Fields are pruned at the top level.
3. Przypadki szczególne
Jeśli struktura zawartości słownika nie może być rozpoznana (np. niezwykły kształt zagnieżdżenia), jest dodawana do pruneContext.dictionariesWithEdgeCases i pozostawiana bez zmian. Rejestrowane jest ostrzeżenie. intlayerMinify również pomija te słowniki.
4. Mapa zmian nazw pól
Gdy przycinanie przebiegnie pomyślnie, intlayerPrune zapisuje również pruneContext.dictionaryKeyToFieldRenameMap — mapowanie z oryginalnych nazw pól na krótkie aliasy. intlayerMinify odczytuje tę mapę, aby zmienić nazwy pól w wyjściowym JSON, a przebieg zmiany nazwy Babel w intlayerOptimize aktualizuje dostępy do właściwości w plikach źródłowych odpowiednio.
Warunki aktywacji
intlayerPrune jest aktywny tylko wtedy, gdy wszystkie poniższe warunki są spełnione:
- Polecenie Vite to
build. build.optimizetotrue(lubundefined, które domyślnie przyjmuje wartośćtruedla kompilacji).build.purgetotruew konfiguracji Intlayer.
Pozostaje aktywny, gdy editor.enabled ma wartość true: wizualny edytor odwzorowuje każdą edycję za pomocą dictionaryKey + keyPath względem niezmergowanych słowników, których ta wtyczka nigdy nie dotyka, a usunięte pole to pole, którego nie odczytuje żaden komponent — więc nigdy nie jest renderowane ani wybieralne na stronie.
