क्लोज़र कंपाइलर सेवा एपीआई का संदर्भ

क्लोज़र कंपाइलर की सेवा बंद कर दी गई है और इसे हटा दिया जाएगा. इसके बजाय, कंपाइलर को स्थानीय तौर पर चलाएं.

खास जानकारी

क्लोज़र कंपाइलर सेवा से इकट्ठा किए गए कोड या अन्य जानकारी का अनुरोध करने के लिए, आपको यूआरएल https://closure-compiler.appspot.com/compile पर एक एचटीटीपी पोस्ट अनुरोध भेजना होगा. अनुरोध के मुख्य हिस्से में ज़रूरी अनुरोध पैरामीटर की सूची में शामिल पैरामीटर होने चाहिए. साथ ही, इसमें ज़रूरी अनुरोध पैरामीटर की सूची में शामिल कोई भी वैकल्पिक पैरामीटर हो सकता है.

अगर मुमकिन हो, तो यह पेज फ़्लैग और विकल्प में कमांड लाइन विकल्पों के लिए कैननिकल दस्तावेज़ की जगह, कुछ समय बाद ही दिखाएगा. कमांड लाइन के विकल्प वेबसेवा में उपलब्ध नहीं हैं. कुछ अनुरोध पैरामीटर कमांड लाइन पर भी उपलब्ध नहीं हैं या उनका नाम अलग है.

अगर सर्वर आपके अनुरोध को प्रोसेस नहीं कर पाता है, तो आपको सर्वर की गड़बड़ी का मैसेज मिलेगा. इन मैसेज के बारे में गड़बड़ी के मैसेज सेक्शन में बताया गया है.

अनुरोध के पैरामीटर

ज़रूरी अनुरोध पैरामीटर

js_code या code_url

कंपाइल किया जाने वाला JavaScript. आपको इनमें से कम से कम एक पैरामीटर शामिल करना होगा और आप दोनों पैरामीटर शामिल कर सकते हैं.

js_code पैरामीटर एक स्ट्रिंग होनी चाहिए, जिसमें JavaScript शामिल हो, जैसे कि alert('hello').

code_url पैरामीटर में किसी JavaScript फ़ाइल का यूआरएल होना चाहिए. एक से ज़्यादा इनपुट फ़ाइलें देने के लिए आप कई code_url पैरामीटर शामिल कर सकते हैं.

compilation_level

compilation_level के फ़्लैग और विकल्प पर दस्तावेज़ देखें.

output_format
Closure कंपाइलर सेवा के आउटपुट का फ़ॉर्मैट. तीन तरह के आउटपुट फ़ॉर्मैट इस्तेमाल किए जा सकते हैं:
xml

xml आउटपुट फ़ॉर्मैट, मांगी गई जानकारी को मान्य एक्सएमएल में रैप करता है.

एक्सएमएल आउटपुट ऐसा दिखता है:

        <compilationResult>
          <compiledCode>var a="hello";alert(a);</compiledCode>
          <statistics>
            <originalSize>98</originalSize>
            <compressedSize>35</compressedSize>
            <compileTime>0</compileTime>
          </statistics>
        </compilationResult>
      

compiledCode सेक्शन में, कंप्रेस किया गया JavaScript होता है जो क्लोज़र कंपाइलर सेवा से मिलता है. यह सेक्शन सिर्फ़ तब दिखता है, जब अनुरोध में compiled_code की वैल्यू वाला output_info पैरामीटर शामिल किया जाता है. इसी तरह, statistics सेक्शन सिर्फ़ तब दिखता है, जब statistics की वैल्यू के साथ output_info पैरामीटर शामिल किया जाता है.

अगर warnings वैल्यू वाला कोई output_info पैरामीटर शामिल किया जाता है और कंपाइलर चेतावनी देता है, तो आउटपुट में warnings टैग शामिल होगा:

        <compilationResult>
         ...
         <warnings>
           <warning type="JSC_NO_SIDE_EFFECT" file="default.js" lineno="12" charno="3"  line="delete 1;">warning 1</warning>
           <warning type="JSC_UNUSED_VAR" file="default.js" lineno="13" charno="13" line="delete 1;">warning 2 </warning>
         </warnings>
          ...
        </compilationResult>
      

अगर errors की वैल्यू के साथ output_info को शामिल किया जाता है, तो क्लोज़र कंपाइलर सेवा में errors टैग शामिल किया जाएगा. ऐसा तब होगा, जब आपके कोड में सिंटैक्स की गड़बड़ी या ऐसी अन्य समस्या होगी जिससे कंपाइलेशन रुक जाता है. errors टैग कुछ ऐसा दिखता है:

        <compilationResult>
          ...
          <errors>
            <error type="JSC_NO_SIDE_EFFECT" file="default.js" lineno="12" charno="3"  line="var x=-'hello';">error 1 </error>
            <error type="JSC_UNUSED_VAR" file="default.js" lineno="13" charno="13" line="var x=-'hello'">error 2 </error>
          </errors>
          ...
        </compilationResult>
      

error और warning टैग के file, line, और col एट्रिब्यूट से पता चलता है कि क्लोज़र कंपाइलर की सेवा में कहां गड़बड़ी हुई थी.

अगर क्लोज़र कंपाइलर सेवा में कोई ऐसी गड़बड़ी मिलती है जिसकी वजह से आपका इनपुट प्रोसेस नहीं किया जा सकता, तो आउटपुट कुछ ऐसा दिखेगा:

        <compilationResult>
          <serverErrors>
            <error code="1">Over quota</error>
          </serverErrors>
        </compilationResult>
      
json

json आउटपुट फ़ॉर्मैट, अनुरोध की गई जानकारी को JavaScript ऑब्जेक्ट नोटेशन (JSON) स्ट्रिंग में रैप करता है. JavaScript के रूप में इस स्ट्रिंग का आकलन JavaScript ऑब्जेक्ट दिखाता है.

JSON आउटपुट ऐसा दिखता है:

{
"compiledCode":/* raw code here */,
{"errors": [
  {"charno":4321,
   "error":"ERROR: You failed.",
   "lineno":1234,
   "file":"default.js",
   "type":"ERROR_TYPE",
   "line":"var x=-'hello';"}],
"warnings": [
  {"charno":4321,
   "lineno":1234,
   "file":"default.js",
   "type":"ERROR_TYPE",
   "warning":"Warning: You did something wrong!",
   "line":"delete 1;"}]
"serverErrors":[
  {"code":123,"error":"Over quota"}
  ],
"statistics":{
  "originalSize":10,
  "compressedSize":3000
  "compileTime":10
  }
}
      

JSON फ़ॉर्मैट, एक्सएमएल फ़ॉर्मैट की तरह ही होता है: एक्सएमएल आउटपुट में मौजूद हर टैग, JSON ऑब्जेक्ट में उसी नाम की प्रॉपर्टी से मेल खाता है

text
text आउटपुट फ़ॉर्मैट, बिना टैग या JSON ब्रैकेट वाले रॉ टेक्स्ट को दिखाता है. अगर output_info में compiled_code शामिल है, तो टेक्स्ट में JavaScript शामिल होता है. अगर output_info में warnings शामिल है, तो टेक्स्ट में चेतावनी वाले मैसेज होते हैं. अगर output_info में statistics शामिल है, तो टेक्स्ट में आंकड़े होते हैं.

output_format पैरामीटर की डिफ़ॉल्ट वैल्यू text होती है.

output_info

यह कंपाइलर से उस तरह के आउटपुट की जानकारी देता है जो आपको चाहिए. आउटपुट चार तरह के हो सकते हैं:

compiled_code
आपके इनपुट JavaScript का कंप्रेस किया गया और ऑप्टिमाइज़ किया गया वर्शन.
warnings
आपके JavaScript में संभावित गड़बड़ियों को दिखाने वाले मैसेज.
errors
वे मैसेज जो आपके JavaScript में सिंटैक्स या दूसरी गड़बड़ियों को दिखाते हैं.
statistics

क्लोज़र कंपाइलर जो कंप्रेस करता है उसके बारे में जानकारी. xml आउटपुट के लिए, Closure कंपाइलर सेवा इस फ़ॉर्मैट में आंकड़े दिखाती है:

        <compilationResult>
          ...
          <statistics>
            <firstStatisticName>24</firstStatisticName>
            <secondStatisticName>15</secondStatisticName>
          </statistics>
        </compilationResult>
      

वैकल्पिक अनुरोध पैरामीटर

js_externs

इस पैरामीटर की वैल्यू एक JavaScript कोड होना चाहिए, जो फ़ंक्शन के नाम या दूसरे सिंबल बताता है. js_externs का इस्तेमाल करके, उन सिंबल को सुरक्षित रखें जिन्हें आपके कंपाइल किए जा रहे कोड के बाहर बताया गया है. js_externs पैरामीटर सिर्फ़ तब काम करता है, जब ADVANCED_OPTIMIZATIONS में से compilation_level का इस्तेमाल किया जा रहा हो. ज़्यादा जानकारी के लिए, बेहतर कंपाइलेशन देखें.

externs_url

इस पैरामीटर की वैल्यू, उस फ़ाइल का यूआरएल होनी चाहिए जिसमें JavaScript हो. साथ ही, इसमें फ़ंक्शन के नाम या दूसरे चिह्नों की जानकारी भी दी जानी चाहिए. इस फ़ाइल में बताए गए चिह्नों को ठीक उसी तरह से सेव किया जाता है जिस तरह js_externs पैरामीटर में दर्ज चिह्नों को रखा जाता है. externs_url पैरामीटर का असर सिर्फ़ तब पड़ता है, जब आप ADVANCED_OPTIMIZATIONS में से compilation_level का इस्तेमाल कर रहे हों. ज़्यादा जानकारी के लिए, बेहतर कंपाइलेशन देखें.

अगर आपके पास एक से ज़्यादा एक्सटर्नल फ़ाइलें हैं, तो आप इस पैरामीटर को कई बार डाल सकते हैं.

exclude_default_externs

क्लोज़र कंपाइलर सेवा, डिफ़ॉल्ट रूप से एक एक्सटर्नल फ़ाइल का इस्तेमाल करती है. इस फ़ाइल में, बाहरी तौर पर तय किए गए सामान्य सिंबल, जैसे कि document और इसके सभी तरीकों के बारे में बताया जाता है. अगर आपको इन आम एक्सटर्नल एक्सटेंशन का इस्तेमाल नहीं करना है, तो अपने अनुरोध में true वैल्यू वाले exclude_default_externs पैरामीटर को शामिल करें.

एक्सटेंशन के बारे में ज़्यादा जानकारी पाने के लिए, बेहतर कंपाइलेशन और एक्सटेंशन देखें.

output_file_name

अगर क्लोज़र कंपाइलर सेवा मौजूद होती है, तो कंपाइल किए गए कोड को एक घंटे के लिए कैश मेमोरी में सेव करती है और उसे खास यूआरएल से उपलब्ध कराती है. इस दौरान, कंपाइल किए गए कोड की जांच की जा सकती है. इसके लिए, अपने ब्राउज़र पर इस यूआरएल पर जाएं. यूआरएल में यह फ़ॉर्म है:

https://closure-compiler.appspot.com/code/bf067f356d510e1c7b81347eb84f65d2/[value of output_file_name]

formatting

formatting के फ़्लैग और विकल्प पर दस्तावेज़ देखें. एक ही अनुरोध में कई formatting पैरामीटर दिए जा सकते हैं.

use_closure_library

अगर use_closure_library पैरामीटर को true की वैल्यू दी जाती है, तो कंपाइलर, सोर्स कोड में goog.require() के स्टेटमेंट खोजता है और ऐसे किसी स्टेटमेंट के लिए क्लोज़र लाइब्रेरी कोड उपलब्ध कराता है. यह खास तौर पर, क्लोज़र लाइब्रेरी कोड के लिए डिज़ाइन किए गए ऑप्टिमाइज़ेशन भी करता है. क्लोज़र लाइब्रेरी के बारे में ज़्यादा जानकारी पाने के लिए, क्लोज़र लाइब्रेरी से जुड़ा दस्तावेज़ देखें. goog.require() फ़ंक्शन के बारे में ज़्यादा जानकारी के लिए, बंद करने की लाइब्रेरी के बारे में जानकारी पाना देखें.

use_closure_library पैरामीटर, डिफ़ॉल्ट रूप से false पर सेट होता है.

warning_level

warning_level के फ़्लैग और विकल्प पर दस्तावेज़ देखें.

language

language_in के विकल्प फ़्लैग और विकल्प में विकल्प के लिए दस्तावेज़ देखें.

language_out

language_out के फ़्लैग और विकल्प पर दस्तावेज़ देखें.

rewrite_polyfills

rewrite_polyfills के फ़्लैग और विकल्प पर दस्तावेज़ देखें.

use_types_for_optimization

use_types_for_optimization के फ़्लैग और विकल्प पर दस्तावेज़ देखें.

गड़बड़ी के मैसेज

अगर सर्वर आपका अनुरोध प्रोसेस नहीं कर पाता है, तो आपको सर्वर की गड़बड़ी का एक मैसेज मिलेगा. इसे नीचे दी गई टेबल में दिखाया गया है. ध्यान दें कि सर्वर गड़बड़ी के ये मैसेज, कंपाइलर की गड़बड़ियों और चेतावनियों से अलग होते हैं. कंपाइलर की गड़बड़ियां और चेतावनियां दिखाती हैं कि क्लोज़र कंपाइलर को आपके JavaScript कोड में कोई समस्या मिली है. सर्वर की गड़बड़ी से जुड़े मैसेज से पता चलता है कि आपके अनुरोध में हुई गड़बड़ी की वजह से, कंपाइलर आपके कोड को पूरी तरह से प्रोसेस नहीं कर सकता.

गड़बड़ी कोडगड़बड़ी का मैसेजलिंक
2अज्ञात आउटपुट मोड.output_format पैरामीटर की वैल्यू xml, json या text के मुकाबले कुछ और है.
4अज्ञात कंप्रेशन लेवल.compilation_level पैरामीटर की वैल्यू WHITESPACE_ONLY, SIMPLE_OPTIMIZATIONS या ADVANCED_OPTIMIZATIONS के अलावा कुछ और है.
8POST डेटा बहुत बड़ा है. क्लोज़र कंपाइलर सेवा को भेजे गए डेटा का साइज़ 2,00,000 बाइट से ज़्यादा है. कंपाइलर सेवा के यूज़र इंटरफ़ेस (यूआई) और आपके एपीआई कॉल, दोनों ही सेवाओं के साथ संपर्क करने के लिए, एचटीटीपी पोस्ट अनुरोध का इस्तेमाल करते हैं. साथ ही, इस अनुरोध में भेजे गए डेटा की कुल संख्या 2,00,000 बाइट से ज़्यादा नहीं हो सकती. एपीआई कॉल के लिए सीमा, सभी अनुरोध पैरामीटर में मौजूद टेक्स्ट की कुल संख्या पर लागू होती है. क्लोज़र कंपाइलर यूज़र इंटरफ़ेस (यूआई) के लिए, यह सीमा सोर्स कोड के टेक्स्ट की कुल संख्या और @code_url जैसे कंपाइलर विकल्पों, दोनों पर लागू होती है. अगर आपका अनुरोध बहुत बड़ा है, तो स्रोत कोड को अलग फ़ाइलों में ले जाएं और @code_url का इस्तेमाल करके उनका संदर्भ दें या अपनी स्थानीय मशीन पर क्लोज़र कंपाइलर ऐप्लिकेशन का इस्तेमाल करें.
9फ़ाइल बहुत बड़ी है.सभी code_url फ़ाइलों, सभी externs_url फ़ाइलों, सभी js_code कोड और सभी js_externs कोड की कुल संख्या 1024000 बाइट से ज़्यादा है.
10URL से सामग्री पुनर्प्राप्त नहीं की जा सकती.क्लोज़र कंपाइलर सेवा ने code_url पैरामीटर में बताई गई JavaScript फ़ाइल या externs_url पैरामीटर में दिखाए गए एक्सटेंशन फ़ाइल को फिर से पाने की कोशिश करते समय गड़बड़ी हुई. पक्का करें कि यूआरएल सही है और फ़ाइल की अनुमतियों की मदद से इसे देखा जा सकता है.
12यूआरएल ठीक से नहीं बनाया गया है.code_url पैरामीटर या externs_url पैरामीटर की वैल्यू, सही यूआरएल नहीं है.
13आउटपुट के लिए कोई आउटपुट जानकारी नहीं, फिर भी कंपाइलेशन का अनुरोध किया गया. कोई output_info पैरामीटर नहीं बताया गया है.
14आउटपुट_जानकारी का अज्ञात मानoutput_info पैरामीटर की वैल्यू, compiled_code, warnings या statistics से अलग है.
16अज्ञात चेतावनी स्तरwarning_level पैरामीटर की वैल्यू QUIET, DEFAULT या VERBOSE के बजाय कुछ और है.
17अज्ञात प्रारूपण विकल्प.formatting पैरामीटर की वैल्यू pretty_print के बजाय कुछ और है.
18एचटीटीपी अनुरोध में अज्ञात पैरामीटरएचटीटीपी अनुरोध में, इस दस्तावेज़ में दिए गए एक पैरामीटर से अलग पैरामीटर शामिल होता है.
19आउटपुट_फ़ाइल_नाम का अवैध मान आउटपुट फ़ाइल के नाम में एक वर्ण, संख्या, अक्षर, बिंदु, अंडरस्कोर या डैश है या इसमें दो लगातार बिंदु (..) हैं
22हाल ही में, कई कंपाइल चलाए गए. कुछ देर बाद फिर से कोशिश करें. आपने अपनी मशीन से बहुत सारे कंपाइल सबमिट कर दिए हैं. एक घंटे बाद, आप दोबारा कंपाइल कर सकेंगे.
23कंपाइलर अपवाद (बैकट्रेस के साथ) कंपाइलर क्रैश हो गया. गड़बड़ी के टेक्स्ट में जानकारी दी गई होगी. इससे Google को समस्या को डीबग करने में मदद मिलेगी.
24असमर्थित इनपुट संसाधन प्रकार संसाधन का प्रकार http: नहीं है, इसलिए इनपुट फ़ाइल फिर से नहीं मिलेगी.