บริการคอมไพเลอร์ Closure เลิกใช้งานแล้วและจะถูกนําออก โปรดลองเรียกใช้คอมไพเลอร์ในเครื่องแทน
ภาพรวม
หากต้องการขอโค้ดที่คอมไพล์หรือข้อมูลอื่นๆ จากบริการ Closure Compiler คุณต้องส่งคําขอ HTTP POST ไปยัง URL นั้น https://closure-compiler.appspot.com/compile
เนื้อหาของคําขอต้องมีพารามิเตอร์ที่ระบุอยู่ในพารามิเตอร์คําขอที่จําเป็น และมีพารามิเตอร์ที่ไม่บังคับซึ่งระบุไว้ในพารามิเตอร์คําขอที่ไม่บังคับด้วย
หากเป็นไปได้ หน้านี้จะยึดตามเอกสาร Canonical สําหรับตัวเลือกบรรทัดคําสั่งในแฟล็กและตัวเลือก ตัวเลือกบรรทัดคําสั่งที่ไม่มีในบริการเว็บจะไม่มีการบันทึกที่นี่ นอกจากนี้ พารามิเตอร์คําขอบางรายการไม่พร้อมใช้งานในบรรทัดคําสั่งหรือชื่ออื่น
หากเซิร์ฟเวอร์ประมวลผลคําขอของคุณไม่สําเร็จ คุณจะได้รับข้อความแสดงข้อผิดพลาดเกี่ยวกับเซิร์ฟเวอร์ ข้อความเหล่านี้อธิบายไว้ในส่วนข้อความแสดงข้อผิดพลาด
พารามิเตอร์คําขอ
พารามิเตอร์คําขอที่จําเป็น
js_code
หรือcode_url
-
JavaScript ที่คอมไพล์ไว้ คุณต้องใส่พารามิเตอร์เหล่านี้อย่างน้อย 1 รายการ และมีทั้ง 2 อย่างได้
พารามิเตอร์
js_code
ต้องเป็นสตริงที่มี JavaScript เช่นalert('hello')
พารามิเตอร์
code_url
ต้องมี URL ของไฟล์ JavaScript คุณสามารถใส่พารามิเตอร์code_url
หลายรายการเพื่อระบุไฟล์อินพุตหลายไฟล์ compilation_level
-
โปรดดูเอกสารเกี่ยวกับ
compilation_level
ที่แฟล็กและตัวเลือก output_format
- รูปแบบสําหรับเอาต์พุตของบริการ Closure Compiler เอาต์พุตมี 3 รูปแบบดังนี้
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
มี JavaScript ที่บีบอัดซึ่งบริการ 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
จะรวมข้อมูลที่ขอในสตริง JavaScript Object Notation (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 คล้ายกับรูปแบบ XML นั่นคือ ทุกแท็กในเอาต์พุต XML จะสอดคล้องกับพร็อพเพอร์ตี้ที่มีชื่อเดียวกันในออบเจ็กต์ JSON
text
-
รูปแบบเอาต์พุต
text
จะแสดงข้อความดิบโดยไม่มีแท็กหรือวงเล็บ JSON หากoutput_info
มีcompiled_code
ข้อความจะมี JavaScript ด้วย หากoutput_info
มีwarnings
ข้อความจะมีข้อความเตือน หากoutput_info
มีstatistics
ข้อความจะมีสถิติ
พารามิเตอร์
output_format
มีค่าเริ่มต้นเป็นtext
output_info
-
ระบุประเภทของเอาต์พุตที่คุณต้องการคอมไพเลอร์ เอาต์พุตมี 4 ประเภทดังนี้
compiled_code
- JavaScript สําหรับอินพุตที่บีบอัดและเพิ่มประสิทธิภาพ
warnings
- ข้อความที่ระบุข้อบกพร่องที่อาจเกิดขึ้นใน JavaScript
errors
- ข้อความที่แสดงข้อผิดพลาดทางไวยากรณ์หรือข้อผิดพลาดอื่นๆ ใน JavaScript
statistics
-
ข้อมูลเกี่ยวกับระดับการบีบอัดที่เครื่องมือปิด Closure ได้รับ สําหรับเอาต์พุต XML บริการ Closure Compiler จะแสดงผลสถิติในรูปแบบต่อไปนี้
<compilationResult> ... <statistics> <firstStatisticName>24</firstStatisticName> <secondStatisticName>15</secondStatisticName> </statistics> </compilationResult>
พารามิเตอร์คําขอที่ไม่บังคับ
js_externs
-
ค่าของพารามิเตอร์นี้ต้องเป็นโค้ด JavaScript ที่ประกาศชื่อฟังก์ชันหรือสัญลักษณ์อื่นๆ ใช้
js_externs
เพื่อคงสัญลักษณ์ที่กําหนดไว้นอกโค้ดที่คุณคอมไพล์ไว้ พารามิเตอร์js_externs
จะมีผลก็ต่อเมื่อคุณใช้compilation_level
จากADVANCED_OPTIMIZATIONS
ดูข้อมูลเพิ่มเติมที่การรวบรวมขั้นสูง externs_url
-
ค่าของพารามิเตอร์นี้ต้องเป็น URL ของไฟล์ที่มี JavaScript ที่ประกาศชื่อฟังก์ชันหรือสัญลักษณ์อื่นๆ สัญลักษณ์ที่ประกาศในไฟล์นี้จะยังคงอยู่เหมือนกับสัญลักษณ์ที่แสดงในพารามิเตอร์
js_externs
โดยตรง พารามิเตอร์externs_url
จะมีผลก็ต่อเมื่อคุณใช้compilation_level
จากADVANCED_OPTIMIZATIONS
ดูข้อมูลเพิ่มเติมที่การรวบรวมขั้นสูงคุณจะระบุพารามิเตอร์นี้หลายครั้งได้หากมีไฟล์ภายนอกหลายรายการ
exclude_default_externs
-
โดยค่าเริ่มต้น บริการ Closure Compiler จะใช้ไฟล์ Extern แบบมาตรฐานที่ประกาศสัญลักษณ์ทั่วไปที่กําหนดไว้ภายนอก เช่น
document
และวิธีการทั้งหมด หากไม่ต้องการใช้ URL ภายนอกเหล่านี้ ให้ใส่พารามิเตอร์exclude_default_externs
ที่มีค่าtrue
ในคําขอดูข้อมูลเพิ่มเติมเกี่ยวกับส่วนขยายภายนอกได้ที่หัวข้อการรวบรวมขั้นสูงและภายนอก
output_file_name
-
หากมี บริการ Closure Compiler จะแคชโค้ดที่คอมไพล์ไว้นาน 1 ชั่วโมงและให้บริการผ่าน 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 ที่ขอโดยคําสั่งดังกล่าว นอกจากนี้ ยังดําเนินการเพิ่มประสิทธิภาพที่ออกแบบมาเพื่อโค้ด Closure Library โดยเฉพาะอีกด้วย ดูข้อมูลเพิ่มเติมเกี่ยวกับไลบรารี Closure Library ในเอกสารประกอบของ Closure Library ดูข้อมูลเพิ่มเติมเกี่ยวกับฟังก์ชัน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
ที่แฟล็กและตัวเลือก
ข้อความแสดงข้อผิดพลาด
หากเซิร์ฟเวอร์ประมวลผลคําขอของคุณไม่สําเร็จ คุณจะได้รับข้อความแสดงข้อผิดพลาดของเซิร์ฟเวอร์รายการใดรายการหนึ่งในตารางด้านล่าง โปรดทราบว่าข้อความแสดงข้อผิดพลาดเกี่ยวกับเซิร์ฟเวอร์เหล่านี้แตกต่างจากข้อผิดพลาดและคําเตือนของคอมไพเลอร์ ข้อผิดพลาดและคําเตือนของคอมไพเลอร์บ่งชี้ว่า Closure Compiler พบปัญหาในโค้ด JavaScript ของคุณ ข้อความแสดงข้อผิดพลาดเกี่ยวกับเซิร์ฟเวอร์บ่งบอกว่าคอมไพเลอร์ประมวลผลโค้ดไม่ได้เลย เนื่องจากเกิดข้อผิดพลาดในคําขอ
รหัสข้อผิดพลาด | ข้อความแสดงข้อผิดพลาด | ความหมาย |
---|---|---|
2 | โหมดเอาต์พุตที่ไม่รู้จัก | ค่าของพารามิเตอร์ output_format เป็นค่าอื่นที่ไม่ใช่ xml , json หรือ text |
4 | ไม่ทราบระดับการบีบอัด | ค่าของพารามิเตอร์ compilation_level เป็นค่าอื่นที่ไม่ใช่ WHITESPACE_ONLY , SIMPLE_OPTIMIZATIONS หรือ ADVANCED_OPTIMIZATIONS |
8 | ข้อมูล POST มีขนาดใหญ่เกินไป |
ข้อมูลที่ส่งไปยังบริการ Closure Compiler มีขนาดเกิน 200,000 ไบต์ ทั้ง UI ของบริการคอมไพเลอร์และการเรียก API จะใช้คําขอ HTTP POST เพื่อสื่อสารกับบริการ และปริมาณข้อมูลที่ส่งไปในคําขอนี้ต้องไม่เกิน 200,000 ไบต์ สําหรับการเรียก API ขีดจํากัดนี้จะใช้กับจํานวนข้อความทั้งหมดในพารามิเตอร์คําขอทั้งหมด สําหรับ UI ของ Closure Compiler ขีดจํากัดนี้จะใช้กับจํานวนข้อความทั้งหมดในซอร์สโค้ดและตัวเลือกคอมไพเลอร์ เช่น @code_url หากคําขอมีขนาดใหญ่เกินไป ให้ย้ายซอร์สโค้ดไปยังไฟล์แยกต่างหากและอ้างอิงโดยใช้ @code_url หรือใช้แอปพลิเคชัน Closure Compiler ในเครื่องของคุณ
|
9 | ไฟล์ใหญ่เกินไป | จํานวนโค้ดจากไฟล์ code_url ทั้งหมด, ไฟล์ externs_url ทั้งหมด, โค้ด js_code ทั้งหมด และรหัส js_externs ทั้งหมดเกิน 1024000 ไบต์ |
10 | เรียกเนื้อหาจาก URL ไม่ได้ | เกิดข้อผิดพลาดเมื่อบริการ Closure Compiler พยายามเรียกข้อมูลไฟล์ JavaScript ที่ระบุในพารามิเตอร์ code_url หรือไฟล์ภายนอกซึ่งมีอยู่ในพารามิเตอร์ externs_url ตรวจสอบว่า URL ถูกต้องและดูสิทธิ์ของไฟล์ได้ |
12 | URL มีรูปแบบไม่ถูกต้อง | ค่าพารามิเตอร์ของ code_url หรือพารามิเตอร์ externs_url ไม่ใช่ URL ที่มีรูปแบบถูกต้อง |
13 | ไม่มีข้อมูลเอาต์พุตที่จะผลิต แต่ระบบขอการรวบรวม | ไม่ได้ระบุพารามิเตอร์ output_info |
14 | ค่าเอาต์พุต_ที่ไม่รู้จัก | ค่าของพารามิเตอร์ output_info เป็นค่าอื่นที่ไม่ใช่ compiled_code , warnings หรือ statistics |
16 | ไม่ทราบระดับคําเตือน | ค่าของพารามิเตอร์ warning_level เป็นค่าอื่นที่ไม่ใช่ QUIET , DEFAULT หรือ VERBOSE |
17 | ตัวเลือกการจัดรูปแบบที่ไม่รู้จัก | ค่าของพารามิเตอร์ formatting มีค่าอื่นที่ไม่ใช่ pretty_print |
18 | พารามิเตอร์ที่ไม่รู้จักในคําขอ HTTP | คําขอ HTTP มีพารามิเตอร์อื่นที่ไม่ใช่ 1 รายการที่ปรากฏในเอกสารนี้ |
19 | ค่าไม่ถูกต้องสําหรับoutput_file_name | ชื่อไฟล์เอาต์พุตมีอักขระ 1 ตัว ตัวอักษร จุด ขีดล่าง หรือขีดกลาง หรือประกอบด้วยจุดติดกัน 2 จุด (.. ) |
22 | คอมไพล์ดําเนินการมากเกินไปเมื่อเร็วๆ นี้ ลองอีกครั้งในภายหลัง | คุณส่งคอมไพล์จากเครื่องมากเกินไป หลังจาก 1 ชั่วโมง คุณควรคอมไพล์ได้อีกครั้ง |
23 | ข้อยกเว้นของคอมไพเลอร์ (มีการติดตามย้อนหลัง) | คอมไพเลอร์ขัดข้อง ข้อความแสดงข้อผิดพลาดจะมีข้อมูลเพื่อช่วย Google แก้ไขข้อบกพร่อง |
24 | ประเภททรัพยากรอินพุตที่ไม่รองรับ | ประเภททรัพยากรไม่ใช่ http: และระบบจะไม่เรียกดูไฟล์อินพุต |