2011-10-18 14 views
5

Müşterilerim önceki web devinin kaybolması nedeniyle yeni bir projeyi devraldım. Çalışmam gereken tek dosya, yerel sunucuda saklanan dosyalardır. Karşılaştığım tek sorun, JS'nin tümüyle (en azından büyük işlevler için) javascript'i gerçekten rahatsız edici kılan Kapatma Derleyicisinden (veya benzeri bir şeyden) geçirildi. Dışarıda bir şeyler var mı? JS'de varsayıma yardım etmeme yardımcı olacak bir şey var mı? Ben el ile yapıyorum ve oldukça sıkıcı oluyor.Koddaki Closure Compiler (ve benzeri) efektlerini tersine çevirmenin bir yolu var mı?

İşte uğraşıyorum ne bir örnek: vaktinden

var n = {}, 
     e = a.extend(n, x), 
     y = "pageLoaded", 
     u = "pageLoading", 
     c = "modLoaded", 
     w = "xhrComplete", 
     l = true, 
     v = false, 
     s = a("body"), 
     g = Modernizr.historymanagement, 
     f = "", 
     t = "", 
     r = "", 
     k = null, 
     b = window.History; 

teşekkürler! Tre

+1

GELİŞMİŞ MODU ile derlenmişse, yapabileceğinizi düşünmüyorum. Closure Compiler'ın Gelişmiş Mod dönüşümü tek yönlüdür. Eşleme, bir veya bir değildir, bu yüzden orijinal kaynağa geri dönemezsiniz. Derlenmiş JavaScript, son derece verimli olacak şekilde büyük ölçüde optimize edilmiş ve yeniden yazılmıştır. Ancak, eğer kod sadece SIMPLE MODE ile minimize edilirse, o zaman değişken isimlerin basit değiştirilmesi ile yapabilirsiniz. Kodunuzdan yola çıkarak, muhtemelen "BASİT" MODU, çünkü "a" altındaki "genişlet" fonksiyonu yeniden adlandırılacaktır. –

+0

Ve bu, Kapatma Derleyicisinden çıktı gibi "kokmuyor". Başka bir minifier ile paketlenmiş olabilir. –

cevap

2

sayılı gibi çevrimiçi JavaScript beautifiers biri deneyin. Ruhsatlar atandığında belirli bir dereceye kadar belirteçleri değiştirebilirsiniz - örneğin, l'un tüm örneklerini true ve v kodunda false kodu ile değiştirebilirsiniz. Ama tersine çevirmek için çok daha karmaşık olacak başka şeyler var ve kimsenin buna fazla çaba göstermediğine inanmıyorum.

+0

Ah atıfta bulunduğunda kodda biraz kaybolur Ah, bunun için bir terim olduğunu bilmiyordum. Başların için teşekkürler. Ama ben çok düşündüm. İhtiyacım olan şeylere varsayıyorum, sadece kaybolmam. Gerçekten çok sinir bozucu. – tr3online

+1

Objektif ve munged kodlarla çalışmak zordur. Tersine çevirmek acı verici. Değişkenlerin ilgili değişmezleriyle değiştirilmesi, muhtemelen yapılması gereken en kolay şeydir ve uzun sürmemelidir (bir JavaScript belirteci ile veya basit düzenli ifadelerle daha düzensiz bir dereceyle yapılabilir, ancak ben herhangi bir farkın farkında değilim). Bunu yapmak için yardımcı programlar - Asla çok fazla bakmadım, belki de olabilir). Daha sonra anlamlı değişken isimleri kullanmak için daha fazla refactor. –

+0

Tavsiye edeceğiniz araçlar var mı? Gerçek refactoring Desteği ile bir şey? – FloydThreepwood

0

Bu munged oluyor this one

+0

Sağlanan örnekte, halihazırda bir güzelleştirici yoluyla çalıştırılmış gibi görünüyor; Değişkenleri kolayca yeniden adlandırmanın bir yolunu aradıklarını düşünüyorum. – icktoofay

+0

Evet, güzelleştirmeye ihtiyacım yok. Sadece el ile yapmak zorunda kalmadan vars repot için basit bir yolu olup olmadığını merak ediyorum. Bazı şeyler s.removeClass ("wait") 100 satır aşağı, vb – tr3online

İlgili konular