İçeriğe geç
Favoriler

JavaScript Sıkıştırma

Güncellendi:

Gereksiz karakterleri kaldırmak için JavaScript kodunu alana yapıştırın. Sıkıştırılmış kodu kopyalayın ve ekranda gösterilen önceki ve sonraki boyutları karşılaştırın.

JavaScript Küçültme Aracı

Giriş alanları
Etkinleştirilirse, herhangi bir değeri değiştirdiğinizde sonuç otomatik olarak güncellenir.

JavaScript Sıkıştırma Formülü

Formül
\[d=\begin{cases}L_{\mathrm{in}}+N_{\mathrm{LF}},&\text{girdi satır başı karakteri içermiyorsa}\\L_{\mathrm{in}},&\text{aksi halde}\end{cases}\qquad R=\frac{\operatorname{round}\!\left(1000\frac{d-L_{\mathrm{out}}}{d}\right)}{10}\%\]

Burada:

  • \(L_{\mathrm{in}}\) — girdi dizesinin JavaScript tarafından ölçülen uzunluğu.
  • \(N_{\mathrm{LF}}\) — girdideki satır sonu (line feed) karakterlerinin sayısı.
  • \(L_{\mathrm{out}}\) — sıkıştırılmış kodun dize uzunluğu.
  • \(d\) — “Önce” olarak gösterilen değer; \(R\) — ekranda gösterilen sıkıştırma oranı.

Araç, girdiyi bir JavaScript paketleyicisi ile sıkıştırır ve sonucun uzunluğunu düzeltilmiş girdi uzunluğuyla karşılaştırır. Pozitif bir oran, çıktının bu ölçüme göre daha kısa olduğu anlamına gelir.

JavaScript Sıkıştırma – Hesaplama Örneği

Örnek: “hello” yazdıran varsayılan fonksiyonu kullanın. Kaynağı iki satır sonu karakteri dahil 43 karakterdir. Sıkıştırılmış sonuç function test(){console.log("hello")} olur ve uzunluğu 37 karakterdir.

\[d=43+2=45\qquad R=\frac{\operatorname{round}\!\left(1000\frac{45-37}{45}\right)}{10}\%=17.8\%\]

Sonuç: Önce: 45B; Sonra: 37B; Sıkıştırma oranı: %17,8. “Önce” değeri, kaynağın 43 karakterlik dize uzunluğundan büyüktür; çünkü bu araç, girdi satır başı karakteri içermiyorsa her satır sonu karakteri için bir sayım ekler.

Hesaplayıcı nasıl kullanılır

  1. Kaynağınızı Sıkıştırılacak JavaScript Kodu alanına yapıştırın veya yazın. Alan, değiştirebileceğiniz kısa bir örnek fonksiyonla başlar.
  2. Sıkıştırılmış Kod oluşturmak için hesaplayıcıyı çalıştırın. Boş bir alan, sonuç yerine “Kod girin” mesajı üretir.
  3. Çıktıyı ve Önce, Sonra ve Sıkıştırma oranı değerlerini inceleyin. Sıkıştırılmış kodu projenize almak için kopyalama denetimini kullanın.
  4. Kopyalanan kodu dağıtmadan önce hedeflenen ortamda test edin.

Burada JavaScript sıkıştırma ne anlama geliyor

Bu araç, JavaScript kaynağını, ek kodlama ve değişken daraltma seçenekleri kapalı bir paketleyiciden geçirerek daha kompakt hâle getirir. Amaç, uygun yorumlar ve boşluklar gibi kodun sözdizimi için gereksiz karakterleri kaldırmaktır. Sonuç genellikle orijinalden daha zor okunur; bu yüzden kaynağınızın düzenlenebilir bir kopyasını saklayın.

Daha küçük bir kaynak dizesi, tarayıcıya aktarılan JavaScript miktarını azaltabilir; ancak gösterilen oran, sayfa yüklenme süresindeki iyileşmenin bir tahmini değildir. Sunucular gzip veya Brotli uygulayabilir ve bu, aktarılan bayt farkını değiştirebilir. İndirme süresi ayrıca önbelleğe almaya, ağ koşullarına ve sayfanın geri kalanına bağlıdır. Dosya veya metin uzunluğunu daha yakından incelemek için sonucu Metin Boyutu hesaplayıcısı ile karşılaştırın.

Küçültme, karartmadan (obfuscation) farklıdır. Kompakt kod hâlâ JavaScript kaynağıdır ve görece incelemesi kolay olabilir. Bu yaklaşımları karşılaştırıyorsanız, JavaScript Karartıcı (eval) farklı türde bir çıktı üretir; JavaScript Eval Çözücü aracı ise sıradan küçültmeyi geri almak için değil, eval ile paketlenmiş kodu incelemek içindir.

Varsayımlar ve pratik sınırlamalar

Boyut etiketlerinde “B” yazsa da hesaplama, kaydedilmiş bir UTF-8 dosyasındaki bayt sayısını değil, JavaScript dize uzunluklarını kullanır. JavaScript UTF-16 kod birimlerini sayar; bu yüzden ASCII olmayan karakterler, bildirilen değerlerin gerçek dosya boyutlarından farklı olmasına neden olabilir. Araç ayrıca, satır başı karakteri olmadığında girdi uzunluğuna her satır sonu karakteri için bir sayım ekler. Bu düzeltme bildirilen oranı etkiler; sıkıştırılmış koda karakter eklemez.

Sıkıştırma, zaten kompakt olan kodda çok az tasarruf sağlayabilir ve aracın ölçümüne göre çıktı daha uzunsa negatif bir oran mümkündür. Pozitif bir oranı, davranışın değişmediğinin kanıtı olarak görmeyin. JavaScript sözdizimi satır sonlarına ve belirli yorumlara duyarlı olabilir; eski paketleyiciler her modern dil özelliğini doğru işlemeyebilir. Özellikle kodunuz yeni sözdizimi kullanıyorsa veya yorumların korunmasına bağlıysa sonucu test edin.

Üretim çalışması için okunabilir kaynağı saklayın ve sıkıştırılmış sürümü alışılmış testlerinizle ve tarayıcı hedeflerinizle doğrulayın. Aktarım boyutu önemliyse, sunucuda sunulan gerçek dosya boyutlarını karşılaştırın. Bir kaynak dizesinin karakter sayısını ayrıca kontrol etmeniz gerekiyorsa Karakter Sayacı hesaplayıcısını kullanın; onun sayımı, bu aracın düzeltilmiş “Önce” değeriyle eşleşmek zorunda değildir.

Sıkça Sorulan Sorular

JavaScript'i elle nasıl sıkıştırabilirim?

Önce çalışma zamanında gerekmeyen yorumları kaldırın ve token'ları ayırmadığı yerlerde boşlukları kısaltın. Ardından sonucu bir JavaScript ayrıştırıcısında kontrol edin ve testlerinizi çalıştırın. Satır sonlarını körü körüne silmekten kaçının: bir satır sonu, bir ifadenin nasıl yorumlanacağını etkileyebilir. Küçük bir parçadan fazlası için, yerleşik bir küçültücü elle düzenlemeden daha güvenlidir.

JavaScript yorumlarını kaldırmak bir şeyi bozabilir mi?

Evet. Bazı yorumlar derleme araçlarına yönelik talimatlar, lisans gereksinimleri veya kaynak haritası (source map) referansları taşır. Belirli yorumlar ayrıca kodun nasıl ayrıştırıldığını etkileyebilir. Sıkıştırmadan önce projenizin hangi yorumları koruması gerektiğini kontrol edin ve değişmemiş görünen kodun aynı şekilde davranacağını varsaymayın. Çıktıyı hedeflenen ortamda test edin.

İyi bir JavaScript sıkıştırma oranı nedir?

Evrensel bir hedef yoktur. Girinti ve yorum içeren okunabilir kaynakta, zaten küçültülmüş koddan daha fazla kaldırılabilir karakter bulunur. Sonucu aynı kaynak ve aynı ölçüm yöntemiyle değerlendirin, ardından kullanıcılara sunulan gerçek dosyayı kontrol edin. Çıktı testlerden kalıyorsa veya korumanız gereken yorumları kaldırıyorsa yüksek bir yüzdenin bir yararı yoktur.

Sıkıştırılmış JavaScript neden orijinalden uzun olabilir?

Çok kısa veya zaten kompakt girdi, kaldırılacak pek bir şey sunmayabilir; buna karşılık bir paketleyici, çıktıyı geçerli tutmak için karakter ekleyebilir veya koruyabilir. Sonuç bu nedenle aracın uzunluk hesabına göre daha uzun olabilir. Negatif bir oran kodun geçersiz olduğu anlamına gelmez; bu belirli dönüştürmenin ölçülen uzunluğu azaltmadığı anlamına gelir.

Sıkıştırılmış kodun gerçek UTF-8 boyutunu nasıl bulurum?

Çıktıyı bir UTF-8 dosyası olarak kaydedin ve bayt cinsinden boyutunu kontrol edin ya da JavaScript'te new TextEncoder().encode(code).length ile ölçün. Bu, kaynak ASCII olmayan karakterler içerdiğinde önemlidir: bunların UTF-8 bayt sayısı, hesaplayıcının gösterdiği dize uzunluğundan farklı olabilir. Kodlama veya satır sonları değişebilecekse kaydedilmiş dosyayı kontrol edin.

JavaScript'i küçülttükten sonra hâlâ gzip veya Brotli gerekir mi?

Genellikle evet. Küçültme kaynaktan karakter kaldırır; gzip ve Brotli ise ağ üzerinden gönderilen baytları sıkıştırır; bu yöntemler birlikte kullanılabilir. Tasarrufları basitçe toplanmaz, çünkü sıkıştırma yinelenen boşlukları zaten iyi işleyebilir. Aktarım boyutlarını, küçültme yüzdesinden tahmin etmek yerine aynı sunucu ayarlarıyla karşılaştırın.

JavaScript'i sıkıştırdıktan sonra nasıl hata ayıklayabilirim?

Orijinal kaynağı saklayın ve derleme aracınız destekliyorsa bir kaynak haritası (source map) oluşturun. Kaynak haritası, tarayıcı geliştirici araçlarının kompakt dosyadaki konumları okunabilir kaynakla ilişkilendirmesini sağlar. Bu hesaplayıcı kaynak haritası üretmez; bu yüzden tanımlabilir bir kaynak sürümü saklayın ve dağıtılan bir dosyayı değiştirmeden önce test edin.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir