Bu araç hakkında
JavaScript küçültme, gereksiz karakterleri kaldırarak ve (uygun küçültücülerle) yerel değişkenleri daha kısa adlarla yeniden adlandırarak kaynak kodunun boyutunu azaltır. İlk kategori (boşluk ve yorum kaldırma) basit ve risksizdir. İkincisi (değişken yeniden adlandırma), kapsam kurallarının anlaşılmasını gerektirir ve Terser ve esbuild gibi üretim minifigüratörlerinin en iyi yaptığı şeydir.
Bu araç güvenli küçültmeye odaklanır: yorumları kaldırmak, boşlukları daraltmak, gereksiz noktalı virgülleri kaldırmak ve belirgin kalıpları kısaltmak. Değişken yeniden adlandırma muhafazakardır; yalnızca net kapsamlardaki yerel değişkenlere dokunulur ve harici referanslı adlar olduğu gibi bırakılır. Sonuç işlevsel olarak kaynakla aynıdır.
Üretim düzeyinde küçültme için özel araçlar (Terser, esbuild, swc) ECMAScript kapsam modelinin tamamını anlar ve önemli ölçüde daha küçük çıktılar üretir. Bu araç, tam yapı kurulumu mevcut olmadığında tarayıcı tarafında hızlı küçültme içindir.
Neden JavaScript'i Küçültün?
JavaScript paketleri genellikle modern bir web sayfasındaki en büyük tek kaynaktır. Küçültme, küçültülmemiş kaynağa kıyasla rutin olarak %30-60 oranında boyut küçültme sağlar. Gzip veya Brotli ile birleştirildiğinde azaltma bir miktar azalır, ancak kombinasyon özellikle yavaş bağlantı kullanan kullanıcılar için hala ölçülebilir bayt tasarrufu sağlar.
Daha hızlı JavaScript aynı zamanda daha hızlı Etkileşim Süresi anlamına da gelir. Daha küçük komut dosyaları daha hızlı indirilir, daha hızlı ayrıştırılır ve daha kısa sürede yürütülür. TTI'nin hemen çıkma oranlarını ve SEO sıralamasını etkilediği siteler için küçültme, mevcut en ucuz kazançlardan biridir.
Teknik Detaylar
Küçültücü, ECMAScript sözdizimine uyan bir ayrıştırıcı kullanarak JavaScript'i simgeleştirir. /*! ile işaretlenen lisans açıklamaları dışındaki yorumlar (tek satırlı ve çok satırlı) kaldırılmıştır. önek. Sözdizimsel olarak gerekli olan yerler (tanımlayıcılar arasında, anahtar sözcüklerden sonra) dışında boşluklar daraltılır.
Muhafazakar değişken yeniden adlandırma, basit kapsamlardaki yerel değişkenleri kısaltır. Genel öğeler, dışa aktarılanlar ve içe aktarılan adlar yeniden adlandırılmaz; bu, dış referansları bozar. Derinlemesine yeniden adlandırma için uygun modül farkındalığına sahip analizle Terser veya esbuild kullanın.
Uç durumlar: otomatik noktalı virgül ekleme (ASI), program davranışının değişmesini önlemek için küçültücünün bazı bağlamlarda yeni satırları koruması gerektiği anlamına gelir. Şablon değişmez bilgileri, normal ifade değişmezleri ve JSX (girdi içeriyorsa) tam olarak korunur çünkü içeriklerinin sıkıştırılması güvenli olmayabilir.
Sık sorulan sorular
- Küçültme kodumun çalışma şeklini değiştirir mi?
- Hayır. Küçültme, yürütmeyi etkilemeyen boşlukları ve yorumları kaldırır. Değişken kısaltma (karıştırma), yerel değişkenleri yeniden adlandırır ancak davranışı korur. Genel değişkenler ve dışa aktarılan adlar olduğu gibi korunur.
- Geliştirmede mi yoksa üretimde mi küçültmeliyim?
- Üretimde yalnızca küçültülmüş kodu kullanın. Geliştirme sırasında orijinal okunabilir kodu saklayın. Çoğu derleme aracı (Webpack, Vite, esbuild), üretim oluşturma sürecinin bir parçası olarak küçültmeyi otomatik olarak gerçekleştirir.
- Küçültme ve gizleme arasındaki fark nedir?
- Küçültme, kodu biçimlendirilmişse işlevsel olarak okunabilir halde tutarken boyutu azaltır. Gizleme kasıtlı olarak kodun anlaşılmasını zorlaştırır (dize kodlama, kontrol akışının düzleştirilmesi). Bu araç, gizlemeye değil, boyutun küçültülmesine odaklanır.
- Boyutun ne kadar küçülmesini beklemeliyim?
- Genellikle gzip'ten önce %30-60. Uzun değişken adlarına sahip, iyi yorumlanmış kodda en büyük azalmalar görülür. Gzip sıkıştırmasıyla birleştirildiğinde, JavaScript dosyaları genellikle orijinal kaynaktan %80-90 daha küçüktür.
- Kodum bir sunucuya yüklendi mi?
- Hayır. Küçültücü tarayıcınızda çalışır.
- JavaScript'im ne kadar küçük olacak?
- Tipik olarak %30-60 azalma. Uzun tanımlayıcılara sahip değişken ağırlıklı kod daha fazla sıkıştırır; ifade ağırlıklı kod daha az sıkıştırılır.
- Elle küçültmem gerekir mi?
- Asla. Kaynakta okunabilir JavaScript'i koruyun. Küçültme işlemini bir derleme adımı olarak veya dağıtımın bir parçası olarak çalıştırın.
- TypeScript'te çalışıyor mu?
- TypeScript'in önce tsc veya esbuild kullanılarak JavaScript'e derlenmesi gerekir. Derlendikten sonra ortaya çıkan JavaScript küçültülebilir.