Sorunuzu sorun ve bu sayfaya ve seçtiğiniz AI sağlayıcısına referans vererek belgenin bir özetini alın
Bu belge güncel değil, temel sürüm şu tarihte güncellendi 25 Haziran 2026.
İngilizce dökümana gitSürüm Geçmişi
- "Dokümantasyon başlatıldı"v8.0.021.01.2026
Bu sayfanın içeriği bir yapay zeka kullanılarak çevrildi.
Orijinal içeriğin İngilizce son sürümünü görüntüleyinIf 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
intlayerPrune Vite Eklentisi Dokümantasyonu
intlayerPrune Vite eklentisi, uygulama paketinizden kullanılmayan sözlükleri tree-shake edip budamak için kullanılır. Bu, yalnızca gerekli çokdilli içeriği dahil ederek son bundle boyutunu azaltmaya yardımcı olur.
Kullanım
intlayer() kapsamında (önerilen)
Intlayer yapılandırmanız aracılığıyla pruning'i etkinleştirin ve ana plugin her şeyi işler:
Kodu panoya kopyala
// intlayer.config.tsimport { defineConfig } from "intlayer";export default defineConfig({ build: { optimize: true, // pruning ve minify'ı etkinleştirir },});Kodu panoya kopyala
// vite.config.tsimport { defineConfig } from "vite";import { intlayer } from "vite-intlayer";export default defineConfig({ plugins: [intlayer()],});Standalone
Plugin stack'ini manuel olarak oluşturuyorsanız, intlayerPrune ve intlayerMinify bir PruneContext nesnesini paylaşır ve bu nesne bir kez oluşturulup her ikisine de geçirilmelidir:
Kodu panoya kopyala
// vite.config.tsimport { defineConfig } from "vite";import { intlayerPrune, intlayerMinify } from "vite-intlayer";import { createPruneContext } from "@intlayer/babel";import { getConfiguration } from "@intlayer/config/node";const intlayerConfig = getConfiguration();const pruneContext = createPruneContext();export default defineConfig({ plugins: [ intlayerPrune(intlayerConfig, pruneContext), intlayerMinify(intlayerConfig, pruneContext), // isteğe bağlı, aynı context'ten okur ],});Nasıl çalışır
1. Kullanım analizi (buildStart)
buildStart sırasında, intlayerOptimize eklentisi (aynı zamanda intlayer()'ın bir parçası) build.filesList'de listelenen her bileşen kaynak dosyasını tarar. Her useIntlayer('key') veya getIntlayer('key') çağrısı için, hangi alanların erişildiğini tam olarak kaydeder, örneğin:
Kodu panoya kopyala
const { title, description } = useIntlayer("myDict");// kaydeder: myDict → { title, description }Bu, herhangi bir transform çağrısı çalışmadan önce pruneContext.fieldUsageMap'i oluşturur.
2. JSON budama (transform, enforce: 'pre')
Vite derlenmiş bir sözlük JSON dosyasını işlediğinde, intlayerPrune bunu Vite'nin yerleşik JSON → ESM dönüştürmesinden önce ele geçirir. pruneContext'ten alan kullanım haritasını okur ve kaydedilen kullanım setinde olmayan herhangi bir içerik alanını kaldırır.
İki içerik şekli desteklenir:
- Statik sözlükler —
{ nodeType: "translation", translation: { en: {...}, fr: {...} } }. Alanlartranslationiçinde yerel başına budanır. - Dinamik (yerel başına) sözlükler — düz
{ fieldA: ..., fieldB: ... }. Alanlar en üst düzeyde budanır.
3. Edge cases
Bir sözlüğün içerik yapısı tanınamazsa (örneğin, olağandışı iç içe bir şekil), pruneContext.dictionariesWithEdgeCases öğesine eklenir ve değiştirilmez bırakılır. Bir uyarı günlüğe kaydedilir. intlayerMinify bu sözlükleri de atlar.
4. Field-rename map
Budama başarılı olduğunda, intlayerPrune ayrıca pruneContext.dictionaryKeyToFieldRenameMap — orijinal alan adlarından kısa takma adlara eşleme yazar. intlayerMinify çıktı JSON'daki alanları yeniden adlandırmak için bu haritayı okur ve intlayerOptimize'ın Babel rename geçişi kaynak dosyalardaki property erişimlerini buna göre günceller.
Aktivasyon koşulları
intlayerPrune yalnızca aşağıdakilerin hepsi doğru olduğunda etkin olur:
- Vite komutu
buildolur. build.optimizetrueolur (veyaundefined, derlemeler için varsayılan olaraktrueolur).build.purgeIntlayer yapılandırmanızdatrueolur.
editor.enabled true olduğunda otomatik olarak devre dışı bırakılır çünkü düzenleyici tam sözlük içeriğine ihtiyaç duyar.