IT
OmnvertGörsel • Belge • Ağ

JavaScript Biçimlendirici & Sıkıştırıcı

Beautify or minify JavaScript and TypeScript snippets in your browser.
Developer Tools →
Input
908 chars
Original size
908 B
Output size
0 B
Saved bytes
908 B
Saved %
100.0%
Output
100% client-side: your code never leaves your browser.
About this tool

JavaScript biçimlendiricileri 2017'de Prettier'in opinion'lı biçimlendirmeyi haritada tuttuğu günden beri kendi kategorisidir. 'Sadece Prettier çalıştır' artık girinti, tırnak stili veya trailing virgül tartışmasının varsayılan cevabıdır; ilkesi her modern codebase'e sızmıştır — biçimlendirme aracın işidir, insanın değil. Bu araç o akışın ad-hoc, yapıştır-ve-biçimlendir tamamlayıcısıdır: bir snippet'ı (Stack Overflow, minify bundle, dinamik üretilmiş function body, DevTools yapıştırması) proje kurmadan biçimlendirmek istediğinizde.

Biçimlendirici js-beautify JavaScript modunu kullanır. Modern JS'in tüm yüzeyini işler: ES modülleri, async/await, generator, class, destructuring, default parameter, rest/spread, optional chaining (?.), nullish coalescing (??), logical assignment (||=, &&=, ??=), template literal, private class field (#field), top-level await, dynamic import, top-level statement. JSX desteklenir. Yapılandırma: girinti (2/4/tab), süslü yerleşimi (collapse/end-expand/expand), satır wrap, trailing comma.

Sıkıştırma dürüst bir uyarı gerektirir. Gerçek production minifier'ları (Terser, esbuild, SWC) boşluk daraltmadan çok fazlasını yapar: lokal değişkenleri tek harfe rename eder, tek-kullanım fonksiyonları inline eder, sabit ifadeleri katlar, ulaşılmaz dalları dead-code-elimine eder. Buradaki sıkıştırıcı boşluk-only daraltıcıdır: yorumları sil, boş satırları düşür, güvenli noktalama etrafındaki boşluğu kaldır. Tasarruf elle yazılmış kodda %10-20, zaten biçimli kodda daha düşük. Sarı uyarı banner'ı tam bunu söylüyor — gerçek minifier'larla yarışmıyoruz.

Boşluk-only sıkıştırıcının değer katığı yerler: Build pipeline'a getirmek aşırı olan inline statik sayfa scripts, HTML attribute inline event handler, ad-hoc lightweight obfuscation (güvenlik mekanizması değil), boyut sınırlı container'a kod sığdırma. Bunların ötesinde gerçek minifier kullanın.

Modern sözdizimi yönetimi naif biçimlendiricilerin parçalandığı yerdir. Embed expression'lı template literal (`${name}`) ${} içindeki süslü derinliğini takip etmeli, regex literal'ları bağlamla bölmeden ayırt etmeli, tagged template'leri (sql`SELECT ...`) korumak gerekir. Biçimlendirici ve sıkıştırıcı bu vakaları parser bağlamı izleyen state machine ile işler.

JSX özel durumdur — JavaScript içine gömülü HTML şekilli sözdizimi. Biçimlendirici JSX çocuklarını ebeveynden bir seviye derin girintiler, uzun attribute listelerini wrap'ler. Sıkıştırıcı JSX etrafında düz JavaScript'ten daha tutucudur — JSX boşluğu semantik anlamlı olabilir.

TypeScript çoğunlukla biçimlendirici tarafından işlenir. TS-spesifik sözdizimi (tip annotation, interface, type alias, generic, decorator) doğru biçimlenir. Sıkıştırıcı yorumu ve boşluğu sıyırır ama tip annotation'larını silmez (TypeScript compiler'ı yapar).

Gizlilik aynı: yükleme yok, log yok, tarayıcıda. Yapıştırdığınız JS — embed API key, dahili URL, ön sürüm mantık — cihazınızdan ayrılmaz. Komşu utiliti'ler: HTML Formatter, CSS Formatter, JSON Viewer, JSON to TypeScript, Regex Tester.

Kullanım senaryoları
  • Casual inceleme için minify JS bundle'ı güzelleştirin.
  • Stack Overflow yapıştırmasını okumadan önce biçimi normalize edin.
  • Statik HTML sayfasındaki inline script için hızlı boşluk-only sıkıştırma.
  • Sohbetten yapıştırılan JSX veya modern sözdizimi biçimlendirin.
  • Tek-satırdan fonksiyon yapısını yeniden biçimlendirerek inceleyin.
  • Paylaşmadan önce script'ten yorum sıyırın.
  • Teknik dokümantasyon için JS örnekleri hazırlayın.
  • Modern JavaScript sözdizimi konvansiyonlarını temiz bir taban ile öğretin.
Nasıl çalışır
  1. 1JavaScript'inizi sola yapıştırın veya .js / .ts / .jsx dosyası yükleyin.
  2. 2Biçimlendir veya sıkıştır (boşluk-only) seçin.
  3. 3Girinti (2/4/tab) ve süslü yerleşimi seçin.
  4. 4Çıktı sağda güncellenir.
  5. 5Byte tasarruf tile'ı sıkıştırmanın kazancını gösterir.
  6. 6Kopyala'ya tıklayın veya .js indirin.
SSS
Sıkıştırıcınız neden Terser'dan zayıf?
Gerçek minifier'lar (Terser, esbuild, SWC) değişken adlarını yeniden yazar, fonksiyonları inline eder, sabitleri katlar ve yüzlerce optimizasyon uygular. Bu boşluk-only sıkıştırıcı — hızlı, deterministik, yeniden yazma yok. Production için Terser/esbuild, ad-hoc için bu araç.
Biçimlendirici modern sözdizimini işler mi?
Evet — ES2024 özellikleri (optional chaining, nullish coalescing, logical assignment, private class field, top-level await, dynamic import, JSX). TypeScript-spesifik sözdizimi de işlenir.
Production minify bundle'ı biçimlendirir mi?
Sözdizimi için evet, ama değişken adları minifier'ın rename ettiği tek harflerdir. Biçimlendirici yapıyı geri kazandırır, orijinal adları değil. Orijinal adlar için source map gerekir.
Sıkıştırıcı değişken adlarını mangle ediyor mu?
Hayır — adlar korunur. Tasarrufun Terser'dan küçük olmasının nedeni budur. Rename scope analysis gerektirir ve metinsel transform olarak güvensizdir.
Kodum sunucuya gidiyor mu?
Hayır. Tamamen tarayıcınızda; yükleme yok, log yok. Network sekmesinde doğrulayın.
Template literal'lar neden aynen korunuyor?
Template literal boşluğu sıkça semantik anlamlıdır (sql tag, gql tag, custom tag). Sıkıştırıcı template literal içini korur.
TypeScript desteği?
Evet biçimlendirme için. Sıkıştırıcı yorum ve boşluğu sıyırır ama TS'i JS'e transpile etmez — tsc, esbuild, swc kullanın.
Inline event handler attribute için kullanılır mı?
Evet — onclick="..." içine giren JS ifadesini yapıştırın ve sıkıştırın. Çıktı tek-satır boşluk-daraltılmış versiyondur. Embed tırnakların escape edilmesi gerektiğine dikkat.