Задайте питання та отримайте підсумок документа, вказавши цю сторінку та обраного вами постачальника штучного інтелекту
Історія версій
- "Ініціалізація доки"v9.0.025.06.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
intlayerMinify
intlayerMinify — це плагін Vite, який мінімізує зкомпільовані файли JSON словників під час збірки для продакшену. Він видаляє всі непотрібні пробіли і, у поєднанні з intlayerPrune, опціонально перейменовує поля вмісту на короткі буквені аліаси (a, b, c, …) для додаткового зменшення розміру бандлу.
Плагін вже автоматично включений та налаштований, якщо ви використовуєте intlayer(). Вам потрібно реєструвати його вручну тільки в тому випадку, если ви самостійно збираєте стек плагінів.
Використання
Скопіюйте код у буфер обміну
// vite.config.tsimport { defineConfig } from "vite";import { intlayerMinify, intlayerPrune } from "vite-intlayer";import { createPruneContext } from "@intlayer/babel";const pruneContext = createPruneContext();export default defineConfig({ plugins: [ intlayerPrune(intlayerConfig, pruneContext), intlayerMinify(intlayerConfig, pruneContext), ],});Умови активації
intlayerMinify активний тільки за виконання всіх трьох наступних умов:
- Команда Vite —
build(неserve/ dev). build.optimizeмає значенняtrue(абоundefined, що за замовчуванням дорівнюєtrueдля збірок).build.minifyмає значенняtrueу вашій конфігурації Intlayer.
Він автоматично вимикається, коли editor.enabled має значення true, оскільки редактору потрібен повний, зрозумілий людині вміст словників.
Що мінімізується
Плагін обробляє два шляхи зберігання словників (що визначаються з intlayer.system):
dictionariesDir— статичні словники для всіх мов (наприклад,.intlayer/dictionaries/*.json)dynamicDictionariesDir— динамічні словники для конкретних мов
Словники в режимі fetch (fetchDictionariesDir) ніколи не мінімізуються, оскільки вони завантажуються з віддаленого API під час виконання з використанням оригінальних імен полів. Перейменування полів призвело б до невідповідності між відповіддю сервера та зверненнями до властивостей на стороні клієнта.
Приховування імен полів (мінімізація властивостей)
Коли intlayerPrune аналізує кодову базу і заповнює карту pruneContext.dictionaryKeyToFieldRenameMap, intlayerMinify також перейменовує імена полів контенту на короткі аліаси. Наприклад:
Скопіюйте код у буфер обміну
// до{ "key": "myDict", "content": { "title": "Hello", "description": "World" } }// після (з приховуванням){ "key": "myDict", "content": { "a": "Hello", "b": "World" } }Відповідні звернення до властивостей у вихідних файлах перейменовуються на кроці Babel в intlayerOptimize, тому поведінка в рантаймі залишається незмінною.
Внутрішні поля Intlayer (nodeType, translation тощо) ніколи не перейменовуються.
Граничні випадки (Edge-cases)
Словники, позначені в pruneContext.dictionariesWithEdgeCases (структурні аномалії, виявлені під час фази очищення), повністю пропускаються — вони не мінімізуються і не приховуються, щоб уникнути відправки пошкоджених даних.
Кваліфіковані групи (колекції / варіанти / метадані)
Для словників із масивом qualifierTypes (колекції, варіанти та метадані) плагін зберігає масив qualifierTypes та карту meta без змін. Маскуються лише імена полів усередині записів content. Композитні ключі (що використовуються для зіставлення селекторів під час виконання) ніколи не змінюються.