JavaScript Küçültme
Küçük bir örnek, yalnızca yorumlar ve boşluklar silinerek 68 bayttan 40 bayta iner (%41,2 daha küçük): function hello(name){return"Hi, "+name;}
Nasıl kullanılır
- JavaScript kodunuzu giriş kutusuna yapıştırın.
- Dosyanızda kalması gereken bir başlık varsa "Lisans yorumlarını koru" seçeneğini açık bırakın. Bütün yorumları silmek için kapatın.
- Önceki ve sonraki boyutu görün, ardından küçültülmüş kodu kopyalayın.
Nasıl hesaplanır
Bu araç kodu belirteçlere (token) ayırır ve aynı şekilde okunacak en az boşlukla yeniden yazar. Hiçbir belirteci değiştirmez; dizgiler, düzenli ifadeler, şablon dizgileri, sayılar ve adlar girdikleri gibi çıkar.
Değişken adlarını kısaltmaz, özellik adlarını kısaltmaz, ölü kodu silmez ve sözdizimini dönüştürmez. Bu yüzden kazanç tam bir küçültücüye göre daha azdır.
Birleşince tek belirtece dönüşecek iki belirteç arasında boşluk kalır: "return x", "a in b", "a + +b" ve "1 .toString()" gibi. Eğik çizginin düzenli ifade mi bölme mi olduğu önceki belirtece bakılarak anlaşılır; if, while ya da for başlığının kapanış parantezinden sonrası da buna dahildir.
Satır sonları yalnızca programı değiştiremeyecekleri yerlerde silinir; örneğin açılış parantezinden, virgülden, noktalı virgülden ya da bir işleçten sonra. JavaScript'in otomatik noktalı virgül ekleyebileceği yerlerde, yani noktalı virgülsüz bir ifadeden sonra, return'den sonra ya da ( veya [ ile başlayan bir satırdan önce satır sonu kalır. İfadeleri zaten noktalı virgülle bitiren kod çok az satıra iner.
Kapanmamış bir dizgi, şablon ya da yorum ile hiç kapanmayan süslü parantezler için uyarı verir. Uyarı görürseniz özgün kodu kontrol edin.
Sık sorulan sorular
Küçültülmüş kod aynı şekilde çalışır mı?
Çalışması gerekir, çünkü yalnızca boşluklar ve yorumlar değişir, belirteçler aynı kalır. Otomatik noktalı virgül eklemenin dayandığı satır sonları korunur. Her derleme adımında olduğu gibi yayına almadan önce testlerinizi sonuç üzerinde çalıştırın.
Neden bazı satır sonları hâlâ duruyor?
JavaScript bir satır sonunda otomatik noktalı virgül ekleyebilir. Noktalı virgülü olmayan bir ifadeyi sonraki satırla birleştirmek anlamı değiştirebilir ya da sözdizimi hatasına yol açabilir, bu yüzden satır sonu kalır. Kaynak kodunuza noktalı virgül eklerseniz araç o satırları da birleştirebilir.
Terser veya esbuild gibi değişken adlarını değiştiriyor mu?
Hayır. Yalnızca boşlukları ve yorumları siler. Mümkün olan en küçük paket için canlı ortamda bir derleme aracı kullanın; bu sayfayı kısa kod parçaları, yer imi betikleri ve boyut kontrolü için kullanın.
Düzenli ifadeleri ve şablon dizgilerini doğru işliyor mu?
Evet. /a b[/]/g gibi bir düzenli ifade ve `x ${ y } z` gibi bir şablon olduğu gibi kopyalanır, ${ } içindeki kod küçültülür. Tek sınır, if, while ya da for başlığı olmayan bir kapanış parantezinden hemen sonra satır başında başlayan düzenli ifade değişmezleridir ve bu nadir görülür.
Modern sözdizimini ve TypeScript'i destekliyor mu?
Ok fonksiyonları, sınıflar, isteğe bağlı zincirleme ve özel alanlar gibi modern JavaScript sözdizimini okur, çünkü bunları anlaması gerekmez. TypeScript ve JSX ayrıştırılmaz; tür açıklamaları ve etiketler düz metin gibi işlenebilir ve denetlenmez.
Kodum yükleniyor mu?
Hayır. Her şey tarayıcınızda çalışır.