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. Oczyszczanie JSON (transform, enforce: 'pre')
Gdy Vite przetwarza skompilowany plik JSON słownika, intlayerPrune przechwytuje go przed wbudowaną konwersją Vite JSON → ESM. Odczytuje mapę użycia pól z pruneContext i usuwa wszelkie pola treści, które nie znajdują się w zarejestrowanym zbiorze użyć.
Obsługiwane są dwa formaty treści:
- Słowniki statyczne:
{ nodeType: "translation", translation: { en: {...}, fr: {...} } }. Pola są oczyszczane dla każdego locale wewnątrztranslation. - Słowniki dynamiczne (per-locale): płaskie
{ fieldA: ..., fieldB: ... }. Pola są oczyszczane na najwyższym poziomie.
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.
