Dịch vụ biên dịch đóng không được dùng nữa và sẽ bị xoá. Thay vào đó, vui lòng cân nhắc chạy trình biên dịch cục bộ.
Tổng quan
Để yêu cầu mã đã biên dịch hoặc thông tin khác từ dịch vụ Trình biên dịch đóng, bạn phải gửi yêu cầu POST HTTP tới URL https://closure-compiler.appspot.com/compile
. Phần nội dung của yêu cầu phải chứa các tham số được liệt kê trong phần Các tham số yêu cầu bắt buộc, đồng thời cũng có thể chứa bất kỳ tham số không bắt buộc nào được liệt kê trong Các tham số yêu cầu không bắt buộc.
Khi có thể, trang này sẽ sử dụng tài liệu chuẩn cho các tuỳ chọn dòng lệnh tại Cờ và tuỳ chọn. Các tùy chọn dòng lệnh không có trong dịch vụ web sẽ không được ghi lại tại đây. Một số tham số yêu cầu cũng không có trên dòng lệnh hoặc có tên khác.
Nếu máy chủ không xử lý được yêu cầu của bạn, thì bạn sẽ nhận được một thông báo lỗi của máy chủ. Các thông báo này được mô tả trong phần Thông báo lỗi.
Thông số yêu cầu
Các thông số yêu cầu bắt buộc
js_code
hoặccode_url
-
JavaScript cần biên dịch. Bạn phải bao gồm ít nhất một trong các thông số này và bạn có thể bao gồm cả hai.
Tham số
js_code
phải là một chuỗi chứa JavaScript, chẳng hạn nhưalert('hello')
.Tham số
code_url
phải chứa URL của tệp JavaScript. Bạn có thể đưa vào nhiều tham sốcode_url
để chỉ định nhiều tệp đầu vào. compilation_level
-
Xem tài liệu về
compilation_level
tại phần Cờ và tuỳ chọn. output_format
- Định dạng cho đầu ra của dịch vụ compile Compiler. Có 3 định dạng đầu ra:
xml
-
Định dạng đầu ra
xml
bao bọc thông tin được yêu cầu trong XML hợp lệ.Kết quả XML có dạng như sau:
<compilationResult> <compiledCode>var a="hello";alert(a);</compiledCode> <statistics> <originalSize>98</originalSize> <compressedSize>35</compressedSize> <compileTime>0</compileTime> </statistics> </compilationResult>
Phần
compiledCode
chứa JavaScript nén mà dịch vụ Trình biên dịch đóng đã tạo ra. Phần này chỉ xuất hiện nếu bạn thêm tham sốoutput_info
có giá trịcompiled_code
trong yêu cầu. Tương tự, mụcstatistics
chỉ xuất hiện nếu bạn thêm một tham sốoutput_info
có giá trịstatistics
.Nếu bạn thêm một tham số
output_info
có giá trịwarnings
và trình biên dịch tạo ra cảnh báo, thì kết quả sẽ bao gồm thẻ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>
Nếu bạn cung cấp một
output_info
với giá trịerrors
, dịch vụ Closure Compiler sẽ bao gồm một thẻerrors
nếu mã của bạn chứa lỗi cú pháp hoặc vấn đề khác ngăn cản việc biên dịch. Thẻerrors
có dạng như sau:<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>
Các thuộc tính
file
,line
vàcol
của các thẻerror
vàwarning
cho biết vị trí dịch vụ Closure Compiler gặp lỗi.Nếu dịch vụ Closure Compiler gặp lỗi sẽ ngăn việc xử lý dữ liệu đầu vào của bạn, thì kết quả sẽ có dạng như sau:
<compilationResult> <serverErrors> <error code="1">Over quota</error> </serverErrors> </compilationResult>
json
-
Định dạng đầu ra
json
gói thông tin được yêu cầu trong một chuỗi JavaScript Object Notation (JSON). Đánh giá chuỗi này khi JavaScript trả về một Đối tượng JavaScript.Kết quả JSON có dạng như sau:
{ "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 } }
Định dạng JSON tương tự như định dạng XML: mọi thẻ trong đầu ra XML đều tương ứng với một thuộc tính có cùng tên trong đối tượng JSON
text
-
Định dạng đầu ra
text
trả về văn bản thô không có thẻ hoặc dấu ngoặc JSON. Nếuoutput_info
bao gồmcompiled_code
, văn bản sẽ chứa JavaScript. Nếuoutput_info
bao gồmwarnings
, văn bản sẽ chứa thông điệp cảnh báo. Nếuoutput_info
bao gồmstatistics
, văn bản sẽ chứa số liệu thống kê.
Tham số
output_format
mặc định là giá trịtext
. output_info
-
Cho biết loại đầu ra bạn muốn từ trình biên dịch. Có 4 loại đầu ra:
compiled_code
- Phiên bản nén và tối ưu hoá của JavaScript đầu vào.
warnings
- Thông báo cho biết các lỗi có thể xảy ra trong JavaScript của bạn.
errors
- Thông báo cho biết lỗi cú pháp hoặc các lỗi khác trong JavaScript.
statistics
-
Thông tin về mức độ nén mà Trình biên dịch đóng đạt được. Đối với đầu ra xml, dịch vụ Trình biên dịch đóng sẽ trả về số liệu thống kê theo định dạng sau:
<compilationResult> ... <statistics> <firstStatisticName>24</firstStatisticName> <secondStatisticName>15</secondStatisticName> </statistics> </compilationResult>
Thông số yêu cầu không bắt buộc
js_externs
-
Giá trị của tham số này phải là mã JavaScript khai báo tên hàm hoặc các ký hiệu khác. Sử dụng
js_externs
để giữ lại các biểu tượng được xác định bên ngoài mã bạn đang biên dịch. Tham sốjs_externs
chỉ có hiệu lực nếu bạn đang sử dụngcompilation_level
củaADVANCED_OPTIMIZATIONS
. Xem phần Biên dịch nâng cao để biết thêm thông tin. externs_url
-
Giá trị của tham số này phải là URL của một tệp chứa JavaScript khai báo tên hàm hoặc các ký hiệu khác. Các ký hiệu khai báo trong tệp này được giữ nguyên theo cách tương tự như các ký hiệu liệt kê trực tiếp trong tham số
js_externs
. Tham sốexterns_url
chỉ có hiệu lực nếu bạn đang sử dụngcompilation_level
củaADVANCED_OPTIMIZATIONS
. Xem phần Biên dịch nâng cao để biết thêm thông tin.Bạn có thể chỉ định tham số này nhiều lần nếu có nhiều tệp bên ngoài.
exclude_default_externs
-
Theo mặc định, dịch vụ Closure Compiler (Trình biên dịch đóng) sử dụng một tệp bên ngoài tiêu chuẩn để khai báo các ký hiệu phổ biến bên ngoài như
document
và mọi phương thức. Nếu bạn KHÔNG muốn sử dụng các ngoại lệ phổ biến này, hãy đưa vào yêu cầu tham sốexclude_default_externs
với giá trịtrue
.Xem phần Biên dịch nâng cao và tệp bên ngoài để biết thêm thông tin về bên ngoài.
output_file_name
-
Nếu có, dịch vụ Closure Compiler sẽ lưu mã đã biên dịch vào bộ nhớ đệm trong một giờ và cung cấp mã đó thông qua một URL đặc biệt. Trong giờ này, bạn có thể kiểm tra mã đã biên dịch bằng cách trỏ trình duyệt đến URL này. URL có dạng như sau:
https://closure-compiler.appspot.com/code/bf067f356d510e1c7b81347eb84f65d2/[value of output_file_name]
formatting
-
Xem tài liệu về
formatting
tại phần Cờ và tuỳ chọn. Bạn có thể cung cấp nhiều thông sốformatting
trong cùng một yêu cầu. -
use_closure_library
-
Nếu bạn cung cấp giá trị
true
cho tham sốuse_closure_library
, thì trình biên dịch sẽ tìm kiếm các câu lệnhgoog.require()
trong mã nguồn và cung cấp mã Thư viện đóng đã được yêu cầu bởi bất kỳ câu lệnh nào như vậy. Công cụ này cũng thực hiện các biện pháp tối ưu hoá dành riêng cho mã của Thư viện đóng. Xem tài liệu về Thư viện đóng để biết thêm thông tin về Thư viện đóng. Xem bài viết Tìm kiếm trong Thư viện đóng để biết thêm thông tin về hàmgoog.require()
.Tham số
use_closure_library
mặc định làfalse
. warning_level
-
Xem tài liệu về
warning_level
tại phần Cờ và tuỳ chọn. -
language
-
Xem tài liệu về tùy chọn
language_in
tương đương tại phần Cờ và tùy chọn. -
language_out
-
Xem tài liệu về
language_out
tại phần Cờ và tuỳ chọn. -
rewrite_polyfills
-
Xem tài liệu về
rewrite_polyfills
tại phần Cờ và tuỳ chọn. -
use_types_for_optimization
-
Xem tài liệu về
use_types_for_optimization
tại phần Cờ và tuỳ chọn.
Thông báo lỗi
Nếu máy chủ không xử lý được yêu cầu của bạn, thì bạn sẽ nhận được một trong các thông báo lỗi máy chủ liệt kê trong bảng dưới đây. Lưu ý rằng các thông báo lỗi máy chủ này khác với lỗi trình biên dịch và cảnh báo. Các lỗi và cảnh báo của trình biên dịch cho biết Trình biên dịch đóng đã tìm thấy vấn đề trong mã JavaScript. Thông báo lỗi máy chủ cho biết trình biên dịch hoàn toàn không thể xử lý mã của bạn do lỗi trong yêu cầu của bạn.
Mã lỗi | Thông báo lỗi | Ý nghĩa |
---|---|---|
2 | Chế độ đầu ra không xác định. | Giá trị của thông số output_format là một giá trị khác với xml , json hoặc text . |
4 | Cấp độ nén không xác định. | Giá trị của thông số compilation_level là một giá trị khác với WHITESPACE_ONLY , SIMPLE_OPTIMIZATIONS hoặc ADVANCED_OPTIMIZATIONS . |
8 | Dữ liệu POST quá lớn. |
Kích thước dữ liệu mà bạn gửi đến dịch vụ Closure Compiler vượt quá 200.000 byte. Cả giao diện người dùng Dịch vụ biên dịch và lệnh gọi API
đều sử dụng yêu cầu POST HTTP để giao tiếp với dịch vụ, và
tổng lượng dữ liệu gửi trong yêu cầu này không được vượt quá 200.000
byte. Đối với các lệnh gọi API, giới hạn này áp dụng cho tổng số văn bản
trong tất cả tham số của yêu cầu. Đối với giao diện người dùng Trình biên dịch đóng, giới hạn này
áp dụng cho tổng số văn bản trong cả mã nguồn và
các tùy chọn trình biên dịch như @code_url . Nếu yêu cầu của bạn quá lớn, hãy chuyển mã nguồn vào các tệp riêng biệt và tham chiếu đến các tệp đó bằng @code_url hoặc sử dụng ứng dụng Closure Compiler trên máy cục bộ.
|
9 | Tệp quá lớn. | Tổng số mã của tất cả các tệp code_url , tất cả các tệp externs_url , tất cả mã js_code và tất cả mã js_externs đều vượt quá 1024000 byte. |
10 | Không thể truy xuất nội dung từ URL. | Đã xảy ra lỗi khi dịch vụ Closure Compiler cố gắng truy xuất tệp JavaScript được chỉ định trong tham số code_url hoặc tệp bên ngoài được chỉ định trong tham số externs_url . Kiểm tra để đảm bảo
URL là chính xác và các quyền đối với tệp này cho phép mọi người xem. |
12 | URL không được tạo đúng cách. | Giá trị của
tham số code_url hoặc tham số externs_url
không phải là một URL có định dạng phù hợp. |
13 | Không có thông tin đầu ra nào để tạo, nhưng yêu cầu biên dịch. | Bạn chưa chỉ định
thông số output_info nào. |
14 | Giá trị output_info không xác định | Giá trị của một thông số output_info không phải là compiled_code , warnings hoặc statistics . |
16 | Cấp độ cảnh báo không xác định | Giá trị của thông số warning_level là một giá trị khác với QUIET , DEFAULT hoặc VERBOSE . |
17 | Tùy chọn định dạng không xác định. | Giá trị của
thông số formatting là giá trị khác với pretty_print . |
18 | Tham số không xác định trong yêu cầu HTTP | Yêu cầu HTTP chứa một thông số khác với một trong các thông số được liệt kê trong tài liệu này. |
19 | Giá trị không hợp lệ cho output_file_name | Tên tệp đầu ra chứa một ký tự là số, chữ cái, dấu chấm, dấu gạch dưới hoặc dấu gạch ngang hoặc chứa hai dấu chấm liên tiếp (.. ) |
22 | Quá nhiều nội dung biên dịch được thực hiện gần đây. Hãy thử lại sau. | Bạn đã gửi quá nhiều nội dung biên dịch từ máy của mình. Sau một giờ, bạn sẽ có thể biên dịch lại. |
23 | Ngoại lệ của trình biên dịch (có dấu vết ngược) | Trình biên dịch bị lỗi. Văn bản của lỗi sẽ chứa thông tin giúp Google gỡ lỗi sự cố. |
24 | Loại tài nguyên đầu vào không được hỗ trợ | Loại tài nguyên không phải http:, do đó tệp đầu vào sẽ không được truy xuất. |