سرویس کامپایلر بستن منسوخ شده است و حذف خواهد شد. لطفاً به جای آن کامپایلر را به صورت محلی اجرا کنید.
بررسی اجمالی
برای درخواست کد کامپایل شده یا اطلاعات دیگر از سرویس 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: نیست و بنابراین فایل ورودی بازیابی نخواهد شد. |