Zadaj pytanie i otrzymaj streszczenie dokumentu, odwołując się do tej strony i wybranego dostawcy AI
Historia wersji
- "Zintegrowano z intlayer(); inicjalizacja dokumentacji"v9.0.025.06.2026
Treść tej strony została przetłumaczona przy użyciu sztucznej inteligencji.
Zobacz ostatnią wersję oryginalnej treści w języku angielskimIf 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 to wtyczka Vite, która skanuje pliki źródłowe komponentów w poszukiwaniu wbudowanych deklaracji zawartości Intlayer (inline declarations) — zawartości zdefiniowanej bezpośrednio w komponencie, a nie w osobnym pliku .content.ts — i zapisuje je do plików JSON słownika podczas fazy transformacji.
Od Intlayer v9intlayerCompilerjest automatycznie dołączany do głównej wtyczkiintlayer(), gdy zarównocompiler.enabledma wartośćtrue, jak icompiler.outputjest ustawiony w konfiguracji Intlayer. Musisz go zarejestrować osobno tylko wtedy, gdy chcesz mieć pełną kontrolę nad konfiguracją specyficzną dla kompilatora.
Użycie
Jako część intlayer() (zalecane, v9+)
Włącz kompilator w konfiguracji Intlayer:
Skopiuj kod do schowka
// intlayer.config.tsimport { defineConfig } from "intlayer";export default defineConfig({ compiler: { enabled: true, output: "./src/dictionaries", // gdzie zapisywane są wyekstrahowane słowniki },});Następnie użyj standardowej wtyczki bez dodatkowej rejestracji:
Skopiuj kod do schowka
// vite.config.tsimport { defineConfig } from "vite";import { intlayer } from "vite-intlayer";export default defineConfig({ plugins: [intlayer()],});Samodzielnie (w razie potrzeby)
Skopiuj kod do schowka
// vite.config.tsimport { defineConfig } from "vite";import { intlayerCompiler } from "vite-intlayer";export default defineConfig({ plugins: [intlayerCompiler()],});Opcje
Skopiuj kod do schowka
import type { IntlayerCompilerOptions } from "vite-intlayer";Otwórz tabelę w oknie modalnym, aby wyraźnie zobaczyć całą zawartość
| Opcja | Typ | Opis |
|---|---|---|
configOptions | GetConfigurationOptions | Nadpisania konfiguracji Intlayer przekazywane do getConfiguration(). |
compilerConfig | Partial<CompilerConfig> | Nadpisania sekcji konfiguracji specyficznej dla kompilatora (np. enabled, output, filesList). |
Przykład
Skopiuj kod do schowka
intlayerCompiler({ configOptions: { configFile: "./config/intlayer.config.ts" }, compilerConfig: { enabled: true, output: "./src/dictionaries" },});Jak to działa
Faza transformacji
Dla każdego pliku źródłowego, który pasuje do compiler.filesList, wtyczka kompilatora:
- Przekazuje zawartość pliku do
extractContentz pakietu@intlayer/babel. - Wywołuje
onExtractdla każdej znalezionej deklaracji, co zapisuje wynikowy słownik JSON do ścieżkicompiler.output. - Zwraca przetransformowany kod źródłowy z wbudowanymi deklaracjami zastąpionymi standardowymi wywołaniami
useIntlayer('key')/getIntlayer('key').
Obsługiwane typy plików: .ts, .tsx, .js, .jsx, .vue, .svelte, .astro.
HMR (Hot Module Replacement)
Gdy plik komponentu zostanie zapisany w trybie deweloperskim, kompilator:
- Wykrywa zmianę pliku za pomocą hooka
handleHotUpdatew Vite. - Ponownie ekstrahuje zawartość ze zaktualizowanego pliku.
- Zapisuje zaktualizowany słownik JSON.
- Wyzwala pełne przeładowanie strony (
server.ws.send({ type: 'full-reload' })).
Debounce o wartości 500 ms zapobiega zapętleniu ponownej ekstrakcji spowodowanemu przez sam zapis słownika (który również wyzwala zdarzenie zmiany pliku).
Deduplikacja
intlayerCompiler używa tego samego mechanizmu deduplikacji createPrimaryInstanceGuard co inne wbudowane wtyczki. Gdy obecne są zarówno intlayer() (który zawiera kompilator), jak i ręczne wywołanie intlayerCompiler(), uruchamiana jest tylko pierwsza zarejestrowana instancja — żadne słowniki nie są zapisywane dwukrotnie.