Задайте вопрос и получите краткое содержание документа через любого ИИ-провайдера на этой странице
История версий
- "Инициализация доки"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. Композитные ключи (используемые для сопоставления селекторов во время выполнения) никогда не изменяются.