Задайте вопрос и получите краткое содержание документа через любого ИИ-провайдера на этой странице
История версий
- "Интегрировано в intlayer(); инициализация доки"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
intlayerCompiler
intlayerCompiler — это плагин Vite, который сканирует исходные файлы компонентов на наличие встроенных объявлений контента Intlayer (inline declarations) — контента, определенного непосредственно внутри компонента, а не в отдельном файле .content.ts, — и записывает их в файлы JSON словаря во время фазы трансформации.
Начиная с Intlayer v9intlayerCompilerавтоматически включается в основной плагинintlayer(), если в конфигурации Intlayer включен компилятор (compiler.enabled: true) и задан путь вывода (compiler.output). Вам нужно регистрировать его отдельно только в том случае, если вы хотите полностью контролировать конфигурацию компилятора.
Использование
В составе intlayer() (рекомендуется, v9+)
Включите компилятор в конфигурации Intlayer:
Копировать код в буфер обмена
// intlayer.config.tsimport { defineConfig } from "intlayer";export default defineConfig({ compiler: { enabled: true, output: "./src/dictionaries", // куда записываются извлеченные словари },});Затем используйте стандартный плагин без дополнительной регистрации:
Копировать код в буфер обмена
// vite.config.tsimport { defineConfig } from "vite";import { intlayer } from "vite-intlayer";export default defineConfig({ plugins: [intlayer()],});Отдельно (при необходимости)
Копировать код в буфер обмена
// vite.config.tsimport { defineConfig } from "vite";import { intlayerCompiler } from "vite-intlayer";export default defineConfig({ plugins: [intlayerCompiler()],});Опции
Копировать код в буфер обмена
import type { IntlayerCompilerOptions } from "vite-intlayer";Открыть таблицу в модальном окне для четкого просмотра всех данных
| Опция | Тип | Описание |
|---|---|---|
configOptions | GetConfigurationOptions | Переопределение конфигурации Intlayer, передаваемое в getConfiguration(). |
compilerConfig | Partial<CompilerConfig> | Переопределение специфичных настроек компилятора (например, enabled, output, filesList). |
Пример
Копировать код в буфер обмена
intlayerCompiler({ configOptions: { configFile: "./config/intlayer.config.ts" }, compilerConfig: { enabled: true, output: "./src/dictionaries" },});Как это работает
Фаза трансформации
Для каждого исходного файла, соответствующего compiler.filesList, плагин компилятора:
- Пропускает содержимое файла через
extractContentиз@intlayer/babel. - Вызывает
onExtractдля каждого найденного объявления, записывая результирующий JSON словаря вcompiler.output. - Возвращает трансформированный исходный код со встроенными объявлениями, замененными стандартными вызовами
useIntlayer('key')/getIntlayer('key').
Поддерживаемые типы файлов: .ts, .tsx, .js, .jsx, .vue, .svelte, .astro.
HMR (Hot Module Replacement)
Когда файл компонента сохраняется в режиме разработки, компилятор:
- Обнаруживает изменение файла через хук
handleHotUpdateв Vite. - Повторно извлекает контент из обновленного файла.
- Записывает обновленный JSON словаря.
- Запускает полную перезагрузку страницы (
server.ws.send({ type: 'full-reload' })).
Задержка (debounce) в 500 мс предотвращает бесконечный цикл повторного извлечения, вызываемый самой записью словаря (которая также запускает событие изменения файла).
Дедупликация
intlayerCompiler использует тот же механизм дедупликации createPrimaryInstanceGuard, что и другие встроенные плагины. Когда присутствуют как intlayer() (который включает компилятор), так и ручной вызов intlayerCompiler(), запускается только первый зарегистрированный экземпляр — словари не записываются дважды.