2013-04-15 24 views
8

Clojure ve ClojureScript'in büyük bir hayranıyım ve genellikle ClojureScript'i projelerim için diğer alternatifler üzerinde kullanmayı tercih ediyorum, ancak bazen beni daha küçük projelerde kullanmaktan geri tutan bir şey ~ 80kb eklendi kodun içinde apis kullanmasam bile, Google JavaScript kütüphanesinin oluşturulan javascript'e eklenmesiyle.ClojureScript'i Google Closure lib olmadan derleyebilir miyim?

Bu ekstra ağırlığı önleyen ClojureScript'i derlemenin bir yolu var mı?

+7

@ColeJohnson: Hasta: "Nefes alırken sorun yaşıyorum". Doktor: "Nefes alma ve iyi olacaksın". ;) – Ankur

cevap

11

Ekstra boyut Google Kapanış kitaplığından gelmiyordur --- eğer gelişmiş optimizasyonlarınız açıksa, Closure derleyici, son JavaScript'ten kullanmadığınız herhangi bir Closure kitaplık kodunu kaldırır. Bunun yerine, JavaScript büyük görünüyor çünkü tembel sekmeler, vaatler ve diğer her şey gibi şeyleri uygulayan bir Clojure çalışma zamanı var.

+0

Diğer yorumumda da belirtildiği gibi, bu doğru cevap, diğeri değil. – Zubair

+0

@Zubair'in doğru olduğunu ve cevabımı düzenlediğimi doğruladım. – JohnJ

+0

Görüyorum ki, tüm javascript'in ClojureScript çalışma zamanı olduğunu bilmiyordum. Teşekkürler. – Dane

6

Düzeltme: Zubair'in belirttiği gibi, aşağıdaki adım Google Kapanış optimizasyonunu devre dışı bırakır, ancak son JavaScript'ten Google Kapanış kodunu ortadan kaldırmaz. Kullanılmayan JavaScript'i ortadan kaldırmak için diğer yanıtın önerdiği gibi gelişmiş optimizasyon seçmelisiniz.

ClojureScript: Up and Running yılında

yazarlar Google Kapatma adımı devre dışı bırakma açıklar: [project.clj içinde] :none bir :optimizations değeriyle

Google Kapatma Derleyici hiç çağrılan olmayacak ve yapı, doğrudan ClojureScript derleyicisi tarafından üretilen JavaScript'i yazacaktır. Bu mod , geliştirme ve hata ayıklama için kullanışlıdır. Ancak, JavaScript çıktı bu veya Google beri üretilen JavaScript boyutunu küçültmek veya olmayabilir bir tarayıcıda biraz farklı işleme [...]

Not gerektiren birçok bireysel dosyalar arasında bölünecektir Kapanış, kodunuzun özel olarak çağırdığı hiçbir şeyi çıkarmak için adil bir çalışma yapar. Muhtemelen :optimizations (:none, :whitespace, :simple ve :advanced) çeşitli değerleriyle oynamaya ve sonuçta elde edilen JavaScript'in ne kadar büyük olduğunu görmeye değer.

+0

Teşekkürler, bunu deneyeceğim. – Dane

+1

Bu cevap yanlış. Soru, Google'ın kapatılması için UI kitaplığı olan Google Closure Library'nin nasıl hariç tutulacağını sorar. Bu cevap, Closure Compiler'ın kodunuzda nasıl çalıştırılmayacağını açıklıyor. – Zubair

+0

@Zubair doğru - Yanıtı buna göre düzenledim. – JohnJ

İlgili konular