بستن مرجع API سرویس کامپایلر

سرویس کامپایلر بستن منسوخ شده است و حذف خواهد شد. لطفاً به جای آن کامپایلر را به صورت محلی اجرا کنید.

بررسی اجمالی

برای درخواست کد کامپایل شده یا اطلاعات دیگر از سرویس Closure Compiler، باید یک درخواست HTTP POST به آدرس https://closure-compiler.appspot.com/compile ارسال کنید. بدنه درخواست باید شامل پارامترهای فهرست شده در پارامترهای درخواستی مورد نیاز باشد و همچنین می تواند شامل هر یک از پارامترهای اختیاری فهرست شده در پارامترهای درخواست اختیاری باشد.

در صورت امکان، این صفحه به اسناد متعارف برای گزینه های خط فرمان در Flags و Options موکول می شود. گزینه‌های خط فرمان که در وب‌سرویس موجود نیستند در اینجا مستند نشده‌اند. برخی از پارامترهای درخواست نیز در خط فرمان در دسترس نیستند یا نام دیگری دارند.

اگر سرور نتواند درخواست شما را پردازش کند، یک پیام خطای سرور دریافت خواهید کرد. این پیام ها در قسمت پیام های خطا توضیح داده شده اند.

پارامترهای درخواست

پارامترهای درخواستی مورد نیاز

js_code یا code_url

جاوا اسکریپتی که باید کامپایل شود. شما باید حداقل یکی از این پارامترها را بگنجانید و می توانید هر دو را بگنجانید.

پارامتر js_code باید یک رشته حاوی جاوا اسکریپت باشد، مانند alert('hello') .

پارامتر code_url باید حاوی URL یک فایل جاوا اسکریپت باشد. می توانید چندین پارامتر code_url را برای تعیین چندین فایل ورودی اضافه کنید.

compilation_level

مستندات مربوط به compilation_level را در Flags and Options ببینید.

output_format
فرمت خروجی سرویس Closure Compiler. سه فرمت خروجی ممکن وجود دارد:
xml

فرمت خروجی xml اطلاعات درخواستی را در XML معتبر قرار می دهد.

خروجی XML به شکل زیر است:

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

بخش compiledCode حاوی جاوا اسکریپت فشرده ای است که سرویس Closure Compiler تولید کرده است. این بخش فقط در صورتی ظاهر می شود که یک پارامتر output_info با مقدار compiled_code در درخواست اضافه کنید. به طور مشابه، بخش statistics تنها در صورتی ظاهر می‌شود که یک پارامتر output_info را با مقدار statistics وارد کنید.

اگر یک پارامتر output_info را با مقدار warnings اضافه کنید و کامپایلر یک اخطار تولید کند، خروجی شامل یک تگ 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>
      

اگر یک output_info را با مقدار errors اضافه کنید، اگر کد شما دارای یک خطای نحوی یا مشکل دیگری باشد که از کامپایل شدن جلوگیری می کند، سرویس Closure Compiler یک برچسب 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>
      

ویژگی‌های file ، line و col تگ‌های error و warning نشان می‌دهد که سرویس Closure Compiler در کجا با خطا مواجه شده است.

اگر سرویس Closure Compiler با خطایی مواجه شود که از پردازش ورودی شما جلوگیری می کند، خروجی به صورت زیر است:

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

فرمت خروجی json اطلاعات درخواستی را در یک رشته نشانه گذاری شی جاوا اسکریپت (JSON) می پیچد. ارزیابی این رشته به عنوان جاوا اسکریپت یک شی جاوا اسکریپت را برمی گرداند.

خروجی 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 شبیه فرمت XML است: هر تگ در خروجی XML مربوط به یک ویژگی با همان نام در شی JSON است.

text
فرمت خروجی text ، متن خام را بدون برچسب یا براکت JSON برمی گرداند. اگر output_info شامل compiled_code باشد، متن حاوی جاوا اسکریپت است. اگر output_info شامل warnings باشد، متن حاوی پیام‌های هشدار است. اگر output_info شامل statistics باشد، متن حاوی آمار است.

پارامتر output_format به طور پیش فرض مقداری از text تعیین می کند.

output_info

نوع خروجی مورد نظر شما از کامپایلر را نشان می دهد. چهار نوع خروجی ممکن است:

compiled_code
نسخه فشرده و بهینه شده جاوا اسکریپت ورودی شما.
warnings
پیام هایی که نشان دهنده اشکالات احتمالی در جاوا اسکریپت شما هستند.
errors
پیام هایی که نشان دهنده خطاهای نحوی یا سایر خطاها در جاوا اسکریپت شما هستند.
statistics

اطلاعات مربوط به درجه فشرده سازی که کامپایلر بسته شدن به آن می رسد. برای خروجی xml، سرویس Closure Compiler آمار را در قالب زیر برمی گرداند:

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

پارامترهای درخواست اختیاری

js_externs

مقدار این پارامتر باید کد جاوا اسکریپت باشد که نام توابع یا نمادهای دیگر را اعلام می کند. از js_externs برای حفظ نمادهایی که خارج از کدی که کامپایل می کنید، تعریف شده اند، استفاده کنید. پارامتر js_externs فقط در صورتی تأثیر دارد که از سطح compilation_level ADVANCED_OPTIMIZATIONS استفاده کنید. برای اطلاعات بیشتر به مجموعه پیشرفته مراجعه کنید.

externs_url

مقدار این پارامتر باید URL یک فایل حاوی جاوا اسکریپت باشد که نام توابع یا نمادهای دیگر را اعلام می کند. نمادهای اعلام شده در این فایل دقیقاً مانند نمادهایی که مستقیماً در پارامتر js_externs فهرست شده اند حفظ می شوند. پارامتر externs_url فقط در صورتی تأثیر دارد که از یک compilation_level از ADVANCED_OPTIMIZATIONS استفاده کنید. برای اطلاعات بیشتر به مجموعه پیشرفته مراجعه کنید.

اگر چندین فایل اکسترن دارید می توانید این پارامتر را چندین بار مشخص کنید.

exclude_default_externs

به طور پیش‌فرض، سرویس Closure Compiler از یک فایل خارجی استاندارد استفاده می‌کند که نمادهای رایج تعریف شده خارجی مانند document و همه روش‌های آن را اعلام می‌کند. اگر نمی‌خواهید از این خارجی‌های رایج استفاده کنید، یک پارامتر exclude_default_externs با مقدار true را در درخواست خود بگنجانید.

برای اطلاعات بیشتر در مورد اکسترن ها، به کامپایل پیشرفته و اکسترن ها مراجعه کنید.

output_file_name

در صورت وجود، سرویس Closure Compiler کد کامپایل شده را به مدت یک ساعت در حافظه پنهان نگه می دارد و آن را از طریق یک URL خاص در دسترس قرار می دهد. در طول این ساعت می توانید کد کامپایل شده را با اشاره مرورگر خود به این URL آزمایش کنید. URL به این شکل است:

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

formatting

مستندات را برای formatting در پرچم‌ها و گزینه‌ها ببینید. شما می توانید چندین پارامتر formatting را در یک درخواست ارائه دهید.

use_closure_library

اگر به پارامتر use_closure_library مقدار true بدهید، کامپایلر به دنبال goog.require() در کد منبع می‌گردد و کد Closure Library درخواست شده توسط چنین عباراتی را ارائه می‌کند. همچنین بهینه سازی هایی را انجام می دهد که به طور خاص برای کد بسته شدن کتابخانه طراحی شده اند. برای اطلاعات بیشتر در مورد کتابخانه بسته شدن، به اسناد بسته شدن کتابخانه مراجعه کنید. برای اطلاعات بیشتر در مورد تابع goog.require() به یافتن راه خود در اطراف کتابخانه بسته شدن مراجعه کنید.

پارامتر use_closure_library پیش‌فرض false است.

warning_level

مستندات warning_level را در Flags and Options ببینید.

language

اسناد مربوط به گزینه language_in معادل را در Flags و Options مشاهده کنید.

language_out

مستندات language_out در Flags و Options ببینید.

rewrite_polyfills

مستندات مربوط به rewrite_polyfills را در Flags و Options ببینید.

use_types_for_optimization

به مستندات use_types_for_optimization در Flags and Options مراجعه کنید.

پیغام خطا

اگر سرور نتواند درخواست شما را پردازش کند، یکی از پیام های خطای سرور فهرست شده در جدول زیر را دریافت خواهید کرد. توجه داشته باشید که این پیام های خطای سرور با خطاها و هشدارهای کامپایلر متفاوت است. خطاها و هشدارهای کامپایلر نشان می دهد که Closure Compiler مشکلی در کد جاوا اسکریپت شما پیدا کرده است. پیام های خطای سرور نشان می دهد که کامپایلر به دلیل وجود خطا در درخواست شما، به هیچ وجه قادر به پردازش کد شما نیست.

کد خطا پیغام خطا معنی
2 حالت خروجی ناشناخته مقدار پارامتر output_format چیزی غیر از xml ، json یا text است.
4 سطح فشرده سازی نامشخص مقدار پارامتر compilation_level چیزی غیر از WHITESPACE_ONLY ، SIMPLE_OPTIMIZATIONS یا ADVANCED_OPTIMIZATIONS است.
8 داده های POST خیلی بزرگ است. اندازه داده هایی که به سرویس Closure Compiler ارسال کردید از 200000 بایت بیشتر است. هم رابط کاربری Compiler Service و هم تماس‌های API شما از یک درخواست HTTP POST برای برقراری ارتباط با سرویس استفاده می‌کنند و مجموع داده‌های ارسال شده در این درخواست نمی‌تواند بیش از 200000 بایت باشد. برای تماس‌های API، این محدودیت برای کل مقدار متن در تمام پارامترهای درخواست اعمال می‌شود. برای رابط کاربری Closure Compiler، این محدودیت برای کل مقدار متن در کد منبع و گزینه‌های کامپایلر مانند @code_url . اگر درخواست شما خیلی بزرگ است، یا کد منبع را به فایل های جداگانه منتقل کنید و با استفاده از @code_url به آنها ارجاع دهید، یا از برنامه Closure Compiler در دستگاه محلی خود استفاده کنید.
9 فایل خیلی بزرگ است. مقدار کل کد از همه فایل‌های code_url ، همه فایل‌های externs_url ، همه کدهای js_code و همه کدهای js_externs بیش از 1024000 بایت است.
10 نمی توان محتوا را از URL بازیابی کرد. هنگامی که سرویس Closure Compiler سعی کرد یک فایل جاوا اسکریپت نشان داده شده در پارامتر code_url یا یک فایل externs نشان داده شده در پارامتر externs_url را بازیابی کند، خطایی روی داد. بررسی کنید که URL صحیح باشد و مجوزهای فایل اجازه مشاهده آن را می دهد.
12 URL به درستی تشکیل نشده است. مقدار پارامتر code_url یا پارامتر externs_url یک URL خوب نیست.
13 هیچ اطلاعات خروجی برای تولید وجود ندارد، هنوز تدوین درخواست شده است. هیچ پارامتر output_info مشخص نشده است.
14 مقدار output_info ناشناخته مقدار پارامتر output_info چیزی غیر از compiled_code , warnings یا statistics است .
16 سطح هشدار نامشخص مقدار پارامتر warning_level چیزی غیر از QUIET ، DEFAULT یا VERBOSE است.
17 گزینه قالب بندی ناشناخته مقدار پارامتر formatting چیزی غیر از pretty_print است.
18 پارامتر ناشناخته در درخواست HTTP درخواست HTTP حاوی پارامتری غیر از یکی از موارد ذکر شده در این سند است.
19 مقدار غیرقانونی برای output_file_name نام فایل خروجی شامل یک کاراکتر یک عدد، حرف، نقطه، خط زیر یا خط تیره است، یا حاوی دو نقطه متوالی است ( .. )
22 اخیراً تعداد زیادی کامپایل انجام شده است. بعدا دوباره تلاش کنید. شما کامپایل های زیادی را از دستگاه خود ارسال کرده اید. بعد از یک ساعت، باید دوباره بتوانید کامپایل ها را انجام دهید.
23 استثناء کامپایلر (با بک تریس) کامپایلر از کار افتاد. متن خطا حاوی اطلاعاتی است که به گوگل کمک می کند مشکل را رفع کند.
24 نوع منبع ورودی پشتیبانی نشده است نوع منبع http: نیست و بنابراین فایل ورودی بازیابی نخواهد شد.