Задайте питання та отримайте підсумок документа, вказавши цю сторінку та обраного вами постачальника штучного інтелекту
Історія версій
- "Інтегровано в 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 v9,intlayerCompilerавтоматично включається в основний плагін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(), запускається тільки перший зареєстрований екземпляр — словники не записуються двічі.