Yazar:
    Oluşturma:2026-06-25Son güncelleme:2026-06-25

    @intlayer/babel Paketi

    @intlayer/babel paketi, Intlayer için özel Babel eklentilerinden oluşan bir set sağlar. Bu eklentiler tüm derleme döngüsünü kapsar: içerik bildirimlerini ayıklama, useIntlayer / getIntlayer çağrılarını optimize edilmiş sözlük importlarına yeniden yazma, kullanılmayan alanları temizleme ve alan adlarını karartma (minify).

    Kurulum

    bash
    npm install @intlayer/babel
    

    Dışa Aktarılanlar

    İçe aktarma (Import):

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

    Eklentiler (Plugins)

    İşlev / SınıfAçıklama
    intlayerExtractBabelPluginBabel eklentisi, kaynak dosyalardan çevrilebilir içeriği ayıklayan ve useIntlayer / getIntlayer kancalarını (hooks) otomatik olarak ekleyen Babel eklentisi. Next.js ve Babel tabanlı derleme araçlarıyla kullanım için tasarlanmıştır.
    intlayerOptimizeBabelPluginuseIntlayer ve getIntlayer çağrılarını dönüştüren ve bunların importlarını optimize edilmiş JSON sözlük importlarına (statik, dinamik veya fetch aracılığıyla) yeniden yazan Babel eklentisi.
    intlayerPurgeBabelPluginKaynak dosyaları analiz eden ve kullanılmayan alanları kaldırmak (build.purge) veya bunları kısa takma adlarla yeniden adlandırmak (build.minify) için derlenmiş sözlük JSON dosyalarını yeniden yazan Babel eklentisi.
    intlayerMinifyBabelPluginKaynak dosyaları, karartma aşamasında atanan kısa alan takma adlarını (örneğin content.titlecontent.a) kullanacak şekilde yeniden yazan Babel eklentisi. intlayerPurgeBabelPlugin eklentisine dayanır.
    makeFieldRenameBabelPluginPruneContext içinde doldurulan dictionaryKeyToFieldRenameMap eşlemesine göre kaynak dosyalardaki sözlük içeriği alan erişimlerini yeniden adlandırmak için bir Babel eklentisi üreten fabrika (factory) işlevi.
    makeUsageAnalyzerBabelPluginKaynak koddaki useIntlayer / getIntlayer kullanımını analiz etmek ve paylaşılan PruneContext içindeki alan kullanım verilerini toplamak için bir Babel eklentisi üreten fabrika işlevi.
    getSharedPruneContextBelirtilen temel dizin için paylaşılan PruneContext nesnesini döndüren veya henüz başlatılmamışsa null döndüren yardımcı işlev.

    Eklenti Yapılandırma Yardımcı Programları

    İşlevAçıklama
    getExtractPluginOptionsIntlayer yapılandırmasını yükler ve intlayerExtractBabelPlugin ile kullanıma hazır ExtractPluginOptions döndürür.
    getOptimizePluginOptionsIntlayer yapılandırmasını ve derlenmiş sözlükleri yükler ve intlayerOptimizeBabelPlugin ile kullanıma hazır OptimizePluginOptions döndürür.
    getPurgePluginOptionsIntlayer yapılandırmasını yükler ve intlayerPurgeBabelPlugin ile kullanıma hazır PurgePluginOptions döndürür.
    getMinifyPluginOptionsIntlayer yapılandırmasını yükler yardsımcı ve intlayerMinifyBabelPlugin ile kullanıma hazır MinifyPluginOptions döndürür.

    Tipler

    TipAçıklama
    CompilerModeDerleyici modu: 'dev' HMR desteğiyle geliştirme için veya 'build' üretim derlemeleri için.
    ExtractPluginOptionsintlayerExtractBabelPlugin için seçenekler: dosya listesi, yapılandırma, onExtract geri araması (callback) vb.
    ExtractResultAyıklama sonucu: sözlük anahtarı, dosya yolu, içerik ve dil.
    OptimizePluginOptionsintlayerOptimizeBabelPlugin için seçenekler: sözlük yolları, içe aktarma modu, sözlük başına mod eşlemesi vb.
    PurgePluginOptionsintlayerPurgeBabelPlugin için seçenekler: temel dizin, temizleme/karartma/optimizasyon bayrakları, bileşen dosyaları listesi.
    MinifyPluginOptionsintlayerMinifyBabelPlugin için seçenekler: temel dizin, karartma/optimizasyon/editorEnabled bayrakları.
    PruneContextAnaliz ve temizleme eklentileri arasında paylaşılan durum: alan kullanım eşlemeleri, yeniden adlandırma eşlemeleri vb.
    DictionaryFieldUsageTek bir sözlük için alan kullanımı sonucu: Statik analiz yetersiz olduğunda Set<string> veya 'all'.
    NestedRenameEntryYeniden adlandırma ağacındaki düğüm: shortName ve alt düğüm (children) eşlemesi.
    NestedRenameMapYeniden adlandırma ağacındaki bir düzey: Map<string, NestedRenameEntry>.
    CompatCallerConfigUyumlu bağdaştırıcı (compat-adapter) paketleri için uyumlu bir kullanım analizörü yapılandırması (çağıran adı ve işlem seçenekleri).
    ScriptBlockBir SFC dosyasından (Vue veya Svelte) ayıklanan komut dosyası bloğu: içerik, başlangıç kayması ve bitiş kayması.

    Yardımcı İşlevler

    İşlevAçıklama
    generateShortFieldNameBir tamsayıyı (sıfırdan başlayarak) kısa bir alfabetik tanımlayıcıya dönüştürür: 0'a', 25'z', 26'aa' vb.
    buildNestedRenameMapFromContentDerlenmiş bir sözlüğün içerik değerinden, Intlayer düğüm yapılarına (translation, enumeration vb.) sadık kalarak özyinelemeli (recursive) bir NestedRenameMap oluşturur.
    createPruneContextVarsayılan değerlerle başlatılmış yeni bir boş PruneContext nesnesi oluşturur.
    extractScriptBlocksSonraki Babel analizi için SFC dosyalarından (Vue / Svelte) <script> bloklarını ayıklar.
    BABEL_PARSER_OPTIONSDesteklenen framework'leri (React/Vue/Svelte/Angular/...) kapsayan Babel ayrıştırıcı seçeneklerini temsil eden sabit.
    INTLAYER_CALLER_NAMESOrijinal Intlayer çağıran adlarının sabit listesi: ['useIntlayer', 'getIntlayer'].

    Örnek Kullanım

    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()],
      ],
    };
    
    Not: intlayerPurgeBabelPlugin, ilk eklenti tarafından oluşturulan yeniden adlandırma eşlemesini okuduğu için intlayerMinifyBabelPlugin eklentisinden önce bildirilmelidir. Ayrıca, useIntlayer çağrıları yeniden yazılmadan önce sözlük anahtarlarını görebilmesi için her ikisinden önce intlayerOptimizeBabelPlugin gelmelidir.