Mevcut en iyi JavaScript kompresörü nedir? Ben bir araç arıyorum:
- kullanımı kolay
- yüksek sıkıştırma oranına sahiptir
- Güvenilir sonuç sonuçları üretin (kodu bozmaz)
Mevcut en iyi JavaScript kompresörü nedir? Ben bir araç arıyorum:
Yanıtlar:
Kısa süre önce JavaScript'te yazılmış bir JavaScript kompresörü olan UglifyJS'yi piyasaya sürdüm (NodeJS Node.js platformunda çalışır , ancak herhangi bir JavaScript motorunda çalışacak şekilde kolayca değiştirilebilir, çünkü herhangi bir Node.js
dahili işlem gerektirmez). Çok daha hızlı hem daha var YUI Compressor ve Google Kapatma daha iyi daha sıkıştırır, YUI bunu test tüm komut üzerine ve Kapanış ( "eval" veya "ile" başa bilir) daha güvenlidir.
Boşluk kaldırma dışında, UglifyJS ayrıca şunları yapar:
foo["bar"]
dönüşürfoo.bar
PS: Oh, aynı zamanda "güzelleştirebilir". ;-)
Bu soruyu birkaç yıl sonra tekrar gözden geçiren UglifyJS , şu an için en iyi seçenek gibi görünüyor.
Aşağıda belirtildiği gibi, NodeJS platformunda çalışır, ancak herhangi bir JavaScript motorunda çalışmak üzere kolayca değiştirilebilir.
--- Aşağıdaki eski cevap ---
Google , burada ve burada görüldüğü kadar en küçük dosyaları oluşturuyor gibi görünen Closure Compiler'ı yayınladı
Bundan önce çeşitli seçenekler aşağıdaki gibiydi
Temelde Packer ilk sıkıştırmada daha iyi bir iş çıkarır , ancak kabloyu (yapmalısınız) göndermeden önce dosyaları sıkıştırırsanız , YUI Kompresör en küçük nihai boyutu alır.
Testler jQuery kodu btw üzerinde yapılmıştır.
@ daniel james yorum sıkıştırıcı bahseder Packer gösteren grafik en iyi sıkıştırma lider, bu yüzden ymmv sanırım
\uxxxx
varsayılan olarak değişmezleri .. mesela kullanmak --charset UTF-8
(Eminseniz nasılsa bu konuda tarayıcı haber verirseniz)
YUI Kompresör gidilecek yoldur. Harika bir sıkıştırma oranına sahiptir, iyi test edilmiştir ve birçok üst site arasında kullanılmaktadır ve benim tarafımdan kişisel olarak tavsiye edilmektedir.
Tek bir JavaScript hatası veya hıçkırık olmadan projelerim için kullandım. Ve güzel belgeleri var.
CSS sıkıştırma yeteneklerini hiç kullanmadım, ancak bunlar da var. CSS sıkıştırması da aynı şekilde çalışır.
Not: Dean Edwards'ın / packer / YUI Kompresörden daha iyi bir sıkıştırma oranı elde , kullanırken birkaç JavaScript hatasıyla karşılaştım.
npm install packer
. (= D
Dojo projesinden ShrinkSafe kullanıyorum - gerçekten bir JavaScript yorumlayıcısı ( Rhino) kullandığı için istisnai bir durum kodda semboller bulmak ve kapsamlarını anlamak ) , bu da kodun ortaya çıktığında çalışmasını sağlamaya yardımcı olur. diğer son, aynı şeyi yapmak için regex kullanan birçok sıkıştırma aracının aksine (bu kadar güvenilir değil).
Aslında bir Web Dağıtım Projesi'nde bir MSBuild görevim var geçerli Visual Studio çözümümde bir dağıtımı çalıştıran ve ShrinkSafe aracılığıyla dağıtmadan önce tüm JS dosyalarını çalıştıran bir komut dosyası çalıştıran görevim var ve oldukça iyi çalışıyor.
DÜZENLE: Bu arada, "en iyi" tartışmaya açık, çünkü "en iyi" kriterleri projenin ihtiyaçlarına bağlı olarak değişecektir. Şahsen, ShrinkSafe'in iyi bir denge olduğunu düşünüyorum; en küçük boyutu == en iyi düşünen bazı insanlar için, yetersiz olacaktır.
EDIT: YUI kompresörünün Rhino kullandığını da belirtmek gerekir.
Packer kullanıyorsanız, 'değişkenleri daralt' seçeneğinin çok ötesine geçin ve ortaya çıkan kodu gzipleyin. Base62 seçeneği yalnızca sunucunuz sıkıştırılmış dosyalar gönderemiyorsa geçerlidir. 'Shrink vars' içeren paketleyici YUI'yi daha iyi sıkıştırır, ancak bir yerde noktalı virgül atladıysanız hata verebilir.
base62 temelde fakir bir adamın gzipidir, bu yüzden gzipping base62-ed kodu size gzipping shrink-var-ed kodundan daha büyük dosyalar verir.
Gümüş mermi ararken bu soruyu buldum. Ruby on Rails için http://github.com/sstephenson/sprockets
İşte bunu yapan bir HttpHandler kaynak kodu , belki size yardımcı olacaktır
bananascript.com bana en iyi sonuçları verirdi.
KJScompress
http://opensource.seznam.cz/KJScompress/index.html
Kjscompress / csskompress, JavaScript ve CSS içeren dosyalardan önemli olmayan boşlukları ve yorumları kaldırmak için iki uygulamadan oluşur (kjscompress bir csscompress). Her ikisi de GNU / Linux işletim sistemi için komut satırı uygulamalarıdır.