14

मैं एक वैश्विक वस्तु है जिसका नाम बदल नहीं किया जाना चाहिए (_gat गूगल एनालिटिक्स async नजर से) के साथ एक जावास्क्रिप्ट फ़ाइल है नाम बदलने से बंद संकलक की रोकथाम।कुछ वेरिएबल

इस वस्तु गूगल बंद संकलक द्वारा नाम नहीं बदला जाना चाहिए गूगल एनालिटिक्स इस विशिष्ट नाम के साथ एक चर के लिए लग रहा है के रूप में।

मैंने जावास्क्रिप्ट दस्तावेज़ नोटेशन में उल्लेख किया है: http://code.google.com/closure/compiler/docs/js-for-compiler.html - हालांकि, मुझे एक चर के "सुरक्षा" से संबंधित कुछ भी नहीं मिल रहा है। अगर मैं साधारण या उन्नत संकलन का उपयोग

समस्या कोई फर्क नहीं पड़ता मौजूद है।

मैं यह कैसे सुनिश्चित कर सकते हैं कि _gat चर का नाम बदला नहीं है?

उत्तर

16

Closure Compiler वेब एप्लिकेशन का उपयोग करना , आप js_externs सेट कर सकते हैं। अधिक उदाहरणों के लिए Advanced Compilation and Externs का संदर्भ लें।

// ==ClosureCompiler== 
// @compilation_level ADVANCED_OPTIMIZATIONS 
// @output_file_name default.js 
// @js_externs _gat 
// ==/ClosureCompiler== 
+0

यह अब भी कोई परिवर्तन –

6

base.js. से goog.exportSymbol फ़ंक्शन का उपयोग करें प्रलेखन यहाँ है: http://closure-library.googlecode.com/svn/docs/closure_goog_base.js.html

उपयोग जैसा

goog.exportSymbol("_gat", _gat) 
+0

आप उस पर थोड़ा विस्तार से बता सकते हैं कृप्या? मुझे और जानकारी कहां मिलती है? – phidah

+0

(शुरुआती उत्तर के लिए खेद है, मेरे फोन से जवाब दे रहा था और मेरा स्क्रीन-कीबोर्ड-फू कमजोर है)। –

3

देखें http://closuretools.blogspot.com/2011/01/property-by-any-other-name-part-1.html के बारे में "सभी गैर उद्धृत"

अंदर '' >>> 'बॉब कुछ वार्स डाल' भाग उन्हें संकलक द्वारा नाम बदलकर होने से रोकती है

+1

यह एक दिलचस्प विकल्प है। ADVANCED_OPTIMIZATIONS निष्पादित करते समय भी, क्लोजर विधियों के स्ट्रिंग संदर्भों का नाम नहीं बदलेगा। जैसे कि इसका नाम बदल नहीं जाएगा। अगर इसका संदर्भ दिया गया है: विंडो ['foo'] –

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