Autor:
    Data utworzenia:2026-06-25Ostatnia aktualizacja:2026-06-25

    Pakiet @intlayer/babel

    Pakiet @intlayer/babel dostarcza zestaw wyspecjalizowanych wtyczek Babel dla Intlayer. Wtyczki te obejmują cały cykl budowania: ekstrahowanie deklaracji zawartości, przepisywanie wywołań useIntlayer / getIntlayer do zoptymalizowanych importów słowników, oczyszczanie nieużywanych pól i minifikację nazw pól.

    Instalacja

    bash
    npm install @intlayer/babel
    

    Eksporty

    Import:

    ts
    import { ... } from "@intlayer/babel";
    

    Wtyczki

    Funkcja / KlasaOpis
    intlayerExtractBabelPluginWtyczka Babel, która ekstrahuje przetłumaczalną zawartość z plików źródłowych i automatycznie wstrzykuje hooki useIntlayer / getIntlayer. Przeznaczona do użytku z Next.js i narzędziami budowania opartymi na Babel.
    intlayerOptimizeBabelPluginWtyczka Babel, która przekształca wywołania useIntlayer i getIntlayer oraz przepisuje ich importy do zoptymalizowanych importów słowników JSON (statycznych, dynamicznych lub przez fetch).
    intlayerPurgeBabelPluginWtyczka Babel, która analizuje pliki źródłowe i przepisuje skompilowane pliki JSON słowników w celu usunięcia nieużywanych pól (build.purge) lub zmiany ich nazw na krótkie aliasy (build.minify).
    intlayerMinifyBabelPluginWtyczka Babel, która przepisuje pliki źródłowe w celu użycia krótkich aliasów pól przypisanych podczas fazy minifikacji (np. content.titlecontent.a). Zależy od intlayerPurgeBabelPlugin.
    makeFieldRenameBabelPluginFunkcja fabryczna (factory), która tworzy wtyczkę Babel do zmiany nazw dostępów do pól zawartości słownika w plikach źródłowych zgodnie z dictionaryKeyToFieldRenameMap wypełnioną w PruneContext.
    makeUsageAnalyzerBabelPluginFunkcja fabryczna, która tworzy wtyczkę Babel do analizowania użycia useIntlayer / getIntlayer w kodzie źródłowym i agregowania danych o użyciu pól we wspólnym PruneContext.
    getSharedPruneContextFunkcja pomocnicza, która zwraca wspólny obiekt PruneContext dla określonego katalogu bazowego lub null, jeśli nie został jeszcze zainicjowany.

    Narzędzia konfiguracji wtyczek

    FunkcjaOpis
    getExtractPluginOptionsŁaduje konfigurację Intlayer i zwraca ExtractPluginOptions gotowe do użycia z intlayerExtractBabelPlugin.
    getOptimizePluginOptionsŁaduje konfigurację Intlayer i skompilowane słowniki oraz zwraca OptimizePluginOptions gotowe do użycia z intlayerOptimizeBabelPlugin.
    getPurgePluginOptionsŁaduje konfigurację Intlayer i zwraca PurgePluginOptions gotowe do użycia z intlayerPurgeBabelPlugin.
    getMinifyPluginOptionsŁaduje konfigurację Intlayer i zwraca MinifyPluginOptions gotowe do użycia z intlayerMinifyBabelPlugin.

    Typy

    TypOpis
    CompilerModeTryb kompilatora: 'dev' do programowania ze wsparciem HMR lub 'build' dla kompilacji produkcyjnych.
    ExtractPluginOptionsOpcje dla intlayerExtractBabelPlugin: lista plików, konfiguracja, callback onExtract itp.
    ExtractResultWynik ekstrakcji: klucz słownika, ścieżka do pliku, zawartość i język.
    OptimizePluginOptionsOpcje dla intlayerOptimizeBabelPlugin: ścieżki słowników, tryb importu, mapa trybów dla słownika itp.
    PurgePluginOptionsOpcje dla intlayerPurgeBabelPlugin: katalog bazowy, flagi purge/minify/optimize, lista plików komponentów.
    MinifyPluginOptionsOpcje dla intlayerMinifyBabelPlugin: katalog bazowy, flagi minify/optimize/editorEnabled.
    PruneContextStan współdzielony między wtyczkami analizującymi i oczyszczającymi: mapy użycia pól, mapy zmiany nazw itp.
    DictionaryFieldUsageWynik użycia pola dla pojedynczego słownika: Set<string> lub 'all', gdy analiza statyczna jest niejednoznaczna.
    NestedRenameEntryWęzeł w drzewie zmiany nazw: shortName i mapa dzieci.
    NestedRenameMapJeden poziom w drzewie zmiany nazw: Map<string, NestedRenameEntry>.
    CompatCallerConfigKonfiguracja dla kompatybilnego analizatora użycia dla pakietów compat-adapter (nazwa wywołującego i opcje przetwarzania).
    ScriptBlockBlok skryptu wyekstrahowany z pliku SFC (Vue lub Svelte): zawartość, przesunięcie początkowe i przesunięcie końcowe.

    Funkcje pomocnicze

    FunkcjaOpis
    generateShortFieldNameKonwertuje liczbę całkowitą (zaczynając od zera) na krótki identyfikator alfabetyczny: 0'a', 25'z', 26'aa', itp.
    buildNestedRenameMapFromContentRekurencyjnie buduje NestedRenameMap z wartości zawaktu skompilowanego słownika, przestrzegając struktur węzłów Intlayer (translation, enumeration itp.).
    createPruneContextTworzy nowy pusty obiekt PruneContext zainicjowany wartościami domyślnymi.
    extractScriptBlocksEkstrahuje bloki <script> z plików SFC (Vue / Svelte) do późniejszej analizy Babel.
    BABEL_PARSER_OPTIONSStała reprezentująca opcje parsera Babel obejmująca obsługiwane frameworki (React/Vue/Svelte/Angular/...).
    INTLAYER_CALLER_NAMESStała lista oryginalnych nazw wywołujących Intlayer: ['useIntlayer', 'getIntlayer'].

    Przykładowe użycie

    js
    // babel.config.js
    const {
      intlayerExtractBabelPlugin,
      intlayerPurgeBabelPlugin,
      intlayerMinifyBabelPlugin,
      intlayerOptimizeBabelPlugin,
      getExtractPluginOptions,
      getPurgePluginOptions,
      getMinifyPluginOptions,
      getOptimizePluginOptions,
    } = require("@intlayer/babel");
    
    module.exports = {
      presets: ["next/babel"],
      plugins: [
        [intlayerExtractBabelPlugin, getExtractPluginOptions()],
        [intlayerPurgeBabelPlugin, getPurgePluginOptions()],
        [intlayerMinifyBabelPlugin, getMinifyPluginOptions()],
        [intlayerOptimizeBabelPlugin, getOptimizePluginOptions()],
      ],
    };
    
    Uwaga: Wtyczka intlayerPurgeBabelPlugin musi być zadeklarowana przed intlayerMinifyBabelPlugin, ponieważ ta druga odczytuje mapę zmian nazw utworzoną przez tę pierwszą. Ponadto obie muszą być poprzedzone wtyczką intlayerOptimizeBabelPlugin, aby mogła ona zobaczyć klucze słownika przed przepisaniem wywołań do useIntlayer.