2011-10-18 8 views
5

मैंने अभी हाल ही में एक प्रोजेक्ट लिया है क्योंकि मेरे क्लाइंट पिछले वेब देव गायब हो गए थे। केवल एक ही फाइल जो मुझे काम करना है वह स्थानीय सर्वर पर संग्रहीत है। एकमात्र समस्या का सामना करना पड़ा है कि सभी जेएस क्लोजर कंपाइलर (या इस तरह की कुछ) के माध्यम से चलाया गया है जो जावास्क्रिप्ट को पढ़ने के लिए वास्तव में परेशान करता है (कम से कम बड़े कार्यों के लिए)। क्या वहां कुछ भी है जो मुझे जेएस में वर्र्स को दोबारा बदलने में मदद करेगा, इसलिए मेरे पास देखने के लिए कुछ क्लीनर है? मैं इसे हाथ से कर रहा हूं और यह काफी कठिन हो रहा है।क्या कोड पर क्लोजर कंपाइलर (या जैसा) प्रभाव को उलटाने का कोई तरीका है?

यहाँ मैं क्या के साथ काम कर रहा हूँ का एक उदाहरण है:

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; 

समय से आगे धन्यवाद!

Tre

+1

यदि इसे उन्नत मोड से संकलित किया गया है, तो मुझे नहीं लगता कि आप कर सकते हैं। क्लोजर कंपाइलर का उन्नत मोड रूपांतरण एक तरफा है। मानचित्रण एक या एक पर नहीं है, इसलिए आप मूल स्रोत पर वापस नहीं जा सकते हैं। संकलित जावास्क्रिप्ट को अत्यधिक अनुकूलित किया जाता है और अत्यधिक कुशल होने के लिए पुनः लिखा जाता है। हालांकि, अगर कोड केवल सरल मोड के माध्यम से छोटा हो जाता है, तो आप परिवर्तनीय नामों के सरल प्रतिस्थापन के साथ कर सकते हैं। आपके कोड से निर्णय लेना, यह शायद सरल मोड है, क्योंकि अन्यथा "ए" के तहत "विस्तार" फ़ंक्शन का नाम बदल दिया जाएगा। –

+0

और यह क्लोजर कंपाइलर से आउटपुट की तरह "गंध" नहीं करता है। यह कुछ अन्य minifier के साथ पैक किया जा सकता है। –

उत्तर

2

नहीं, ये munged है। एक निश्चित डिग्री के लिए जब आप शाब्दिक असाइन किए जाते हैं तो आप टोकन को प्रतिस्थापित कर सकते हैं - उदाहरण के लिए, ltrue और v के साथ false के साथ कोड में आप सभी उदाहरणों को प्रतिस्थापित कर सकते हैं। लेकिन ऐसी कुछ चीजें हैं जो यह करती हैं जो विपरीत होने के लिए बहुत जटिल होती हैं और मुझे विश्वास नहीं है कि किसी ने भी इसमें अधिक प्रयास किया है।

+0

आह का जिक्र कर रही हैं, मुझे नहीं पता था कि इसके लिए एक शब्द था। सर उठाने के लिए धन्यवाद। लेकिन, मुझे उतना ही लगा। मैं सामानों में सामानों को प्लग में जोड़ रहा हूं, बस मुझे खोना नहीं है। यह वास्तव में काफी परेशान है। – tr3online

+1

obfuscated और munged कोड के साथ काम करना मुश्किल है। इसे उलटना दर्दनाक है। अपने संबंधित अक्षर के साथ चर के प्रतिस्थापन शायद सबसे आसान काम है और लंबे समय तक नहीं लेना चाहिए (यह जावास्क्रिप्ट टोकनिसर के साथ किया जा सकता है, या सरल नियमित अभिव्यक्तियों के साथ अधिक पैची डिग्री के लिए किया जा सकता है, लेकिन मुझे किसी के बारे में पता नहीं है ऐसा करने के लिए उपयोगिताओं - मैंने कभी नहीं देखा है, हालांकि, हो सकता है)। फिर सार्थक परिवर्तनीय नामों का उपयोग करने के लिए इसे और भी दोबारा दोहराएं। –

+0

क्या कोई उपकरण हैं जो आप सुझाएंगे? वास्तविक रिफैक्टरिंग समर्थन के साथ कुछ? – FloydThreepwood

0

ऑनलाइन जावास्क्रिप्ट beautifiers में से एक कोशिश करें, जैसे this one

+0

प्रदान किए गए उदाहरण से, ऐसा लगता है कि यह पहले से ही एक beautifier के माध्यम से चलाया जा रहा है; मुझे लगता है कि वे आसानी से चर का नाम बदलने का एक तरीका ढूंढ रहे हैं। – icktoofay

+0

हाँ मुझे सुंदरता की आवश्यकता नहीं है। मैं बस सोच रहा हूं कि हाथों से इसे किए बिना वर्रों को दोहराने के लिए मेरे लिए एक आसान तरीका है। मुझे कोड में थोड़ा खो दिया जाता है जब सभी चीजें 's.removeClass (" प्रतीक्षा करें ") '100 लाइनें नीचे, आदि – tr3online

संबंधित मुद्दे