JavaScript Minifier (JS Küçültücü)

JavaScript'i yapıştırın ve Terser ile küçültün: ölü kod kaldırılır, adlar kısaltılır, boşluklar yok olur. Sözdizimi hataları tam satır ve sütunu gösterir.

Tarayıcınızda çalışırKayıt gerekmezHiçbir şey yüklenmez

Küçültülmüş çıktı

JavaScript Minifier nasıl kullanılır?

  1. JavaScript kodunuzu yapıştırın veya bir .js dosyası açın.
  2. Seçenekleri belirleyin: Adları kısalt yerel değişkenleri kısaltır, Sıkıştır kodu daha küçük bir eşdeğerine dönüştürür, ES modülü üst düzey import/export'u etkinleştirir.
  3. Kullanıcılarınızın tarayıcılarının desteklediği ECMAScript hedefini seçin. ES2020 tüm güncel (evergreen) tarayıcılar için güvenlidir.
  4. Çıktının altındaki boyutu, tasarrufu ve gzip tahminini kontrol edin.
  5. Küçültülmüş kodu kopyalayın veya output.min.js olarak indirin.

JavaScript minifier ne yapar?

Küçültme (minification), JavaScript'in yaptığı işi değiştirmeden boyutunu azaltır. Bu araç webpack, Vite ve Rollup'ın arkasındaki küçültücü olan Terser'ı kullanır ve üç tür değişiklik uygular:

  • Boşluk ve yorumların kaldırılması: girintiler, satır sonları ve yorumlar JavaScript motoru için gerekli değildir.
  • Ad kısaltma (mangling): subtotal gibi yerel değişken ve fonksiyon parametresi adları tek harfe dönüşür. Global adlara ve nesne özelliklerine dokunulmaz, böylece genel API'niz çalışmaya devam eder.
  • Sıkıştırma: sabit ifadeler önceden hesaplanır, erişilemeyen kod atılır, if ifadeleri üçlü operatöre dönüşür ve kısa fonksiyonlar satır içine alınır.

Küçültme ve gzip: ikisi de gerekli mi?

Evet. Gzip ve Brotli, ağ üzerinde tekrarlanan bayt kalıplarını sıkıştırır; küçültme ise tarayıcının indirmesi, ayrıştırması ve derlemesi gereken baytları tamamen ortadan kaldırır. Tipik bir script küçültmeyle %40–60, ardından gzip ile %60–70 daha küçülür. Burada gösterilen gzip boyutu, sunucunuzun gerçekte göndereceği boyut için iyi bir tahmindir.

Lisans yorumlarını korumak

Birçok açık kaynak lisansı (MIT, BSD, Apache) telif hakkı bildiriminin kodla birlikte kalmasını şart koşar. Geleneksel olarak /*! ile başlayan veya @license ya da @preserve içeren yorumlar, Lisans yorumlarını koru açıkken korunur.

Ne zaman elle küçültmemeli?

Projeniz zaten bir bundler kullanıyorsa, production build'lerini onun küçültmesine izin verin ve hata ayıklama için source map üretin. Online bir küçültücü; tek seferlik script'ler, bir CMS veya tag manager için kod parçaları, bookmarklet'ler ve bir kodun ne kadar küçülebileceğini görmek için idealdir.

Sıkça sorulan sorular

Kodum bir sunucuya yükleniyor mu?
Hayır. Terser tarayıcı sekmenizin içinde çalışır; böylece kapalı kaynak kodunuz bilgisayarınızdan asla çıkmaz.
Küçültme kodumu bozabilir mi?
Terser yalnızca geçerli JavaScript için davranışı birebir koruyan dönüşümler uygular. Function.prototype.toString()'e veya eval aracılığıyla yerel değişken adlarına dayanan kod etkilenebilir; bu durumda Adları kısalt seçeneğini kapatın.
async/await, class'lar ve optional chaining gibi modern sözdizimini destekliyor mu?
Evet. Terser ES2022+ sözdizimini ayrıştırır. Hedef ayarı yalnızca çıktının hangi sözdizimini kullanabileceğini belirler; yeni özellikleri eski sürümlere dönüştürmez (transpile etmez).
Minify ile uglify arasındaki fark nedir?
Aynı anlama gelirler. UglifyJS klasik araçtı; Terser ise onun tam ES2015+ desteğine sahip, bakımı süren fork'udur.

İlgili araçlar