Задайте питання та отримайте підсумок документа, вказавши цю сторінку та обраного вами постачальника штучного інтелекту
Ця документація застаріла, базову версію оновлено станом на 25 червня 2026 р..
Перейти до англійської версії документаІсторія версій
- "Init doc"v8.0.021.01.2026
Вміст цієї сторінки перекладено за допомогою штучного інтелекту.
Переглянути останню версію оригінального вмісту англійськоюIf 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
Документація плагіна intlayerPrune для Vite
Плагін Vite intlayerPrune використовується для виконання tree-shaking та видалення невикористаних словників з бандла вашого застосунку. Це допомагає зменшити фінальний розмір бандла, включаючи лише необхідний багатомовний вміст.
Використання
У складі intlayer() (рекомендовано)
Увімкніть pruning через конфіг Intlayer, і основний плагін буде керувати всім:
Скопіюйте код у буфер обміну
// intlayer.config.tsimport { defineConfig } from "intlayer";export default defineConfig({ build: { optimize: true, // вмикає як pruning, так і minify },});Скопіюйте код у буфер обміну
// vite.config.tsimport { defineConfig } from "vite";import { intlayer } from "vite-intlayer";export default defineConfig({ plugins: [intlayer()],});Standalone
Якщо ви вручну складаєте стек плагінів, intlayerPrune та intlayerMinify спільно використовують об'єкт PruneContext, який має бути створений один раз і передан обом:
Скопіюйте код у буфер обміну
// vite.config.tsimport { defineConfig } from "vite";import { intlayerPrune, intlayerMinify } from "vite-intlayer";import { createPruneContext } from "@intlayer/babel";import { getConfiguration } from "@intlayer/config/node";const intlayerConfig = getConfiguration();const pruneContext = createPruneContext();export default defineConfig({ plugins: [ intlayerPrune(intlayerConfig, pruneContext), intlayerMinify(intlayerConfig, pruneContext), // опціональний, читає з того ж контексту ],});Як це працює
1. Аналіз використання (buildStart)
Під час buildStart плагін intlayerOptimize (також частина intlayer()) сканує кожен файл вихідного коду компонента зі списку build.filesList. Для кожного виклику useIntlayer('key') або getIntlayer('key') він записує точно які поля доступні, наприклад:
Скопіюйте код у буфер обміну
const { title, description } = useIntlayer("myDict");// записує: myDict → { title, description }Це будує pruneContext.fieldUsageMap перед тим, як запустяться будь-які виклики transform.
2. JSON pruning (transform, enforce: 'pre')
Коли Vite обробляє скомпільований JSON-файл словника, intlayerPrune перехоплює його перед вбудованим JSON → ESM перетворенням Vite. Він читає карту використання полів із pruneContext та видаляє будь-яке поле контенту, яке не входить до записаного набору використання.
Підтримуються дві форми контенту:
- Статичні словники —
{ nodeType: "translation", translation: { en: {...}, fr: {...} } }. Поля обрізаються за локалю всерединіtranslation. - Динамічні (за локалю) словники — плоске
{ fieldA: ..., fieldB: ... }. Поля обрізаються на верхньому рівні.
3. Граничні випадки
Якщо структуру вмісту словника не можна розпізнати (наприклад, незвичайна вкладена форма), він додається до pruneContext.dictionariesWithEdgeCases і залишається без змін. Записується попередження. intlayerMinify також пропускає ці словники.
4. Карта перейменування полів
Коли pruning успішно завершується, intlayerPrune також записує pruneContext.dictionaryKeyToFieldRenameMap — відображення оригінальних назв полів на короткі псевдоніми. intlayerMinify читає цю карту для перейменування полів у вихідному JSON, а pass перейменування Babel в intlayerOptimize оновлює доступи до властивостей у вихідних файлах відповідно.
Умови активації
intlayerPrune активний лише коли всі наступні умови виконані:
- Команда Vite —
build. build.optimizeмає значенняtrue(абоundefined, що за замовчуванням дорівнюєtrueдля збірок).build.purgeмає значенняtrueу вашій конфігурації Intlayer.
Він автоматично вимикається, коли editor.enabled має значення true, оскільки редактору потрібна повна змістова частина словника.