Kompilator zamknięty został wycofany i zostanie usunięty. Zamiast tego rozważ uruchomienie kompilatora lokalnie.
Omówienie
Aby wysłać skompilowany kod lub inne informacje z usługi kompilatora Closure Compiler, musisz wysłać żądanie POST HTTP na adres URL https://closure-compiler.appspot.com/compile
. Treść żądania musi zawierać parametry wymienione w sekcji Wymagane parametry żądania, a także dowolne parametry opcjonalne wymienione w artykule Opcjonalne parametry żądania.
Tam, gdzie to możliwe, ta strona określa kanoniczną dokumentację opcji wiersza poleceń w sekcji Flagi i opcje. Opcje wiersza poleceń niedostępne w usłudze internetowej nie są tutaj wymienione. Niektóre parametry żądania są również niedostępne w wierszu poleceń lub mają inną nazwę.
Jeśli serwer nie przetworzy żądania, pojawi się komunikat o błędzie serwera. Te komunikaty są opisane w sekcji Komunikaty o błędach.
Parametry żądania
Wymagane parametry żądania
js_code
lubcode_url
-
Kod JavaScript do skompilowania. Musisz uwzględnić co najmniej jeden z tych parametrów.
Parametr
js_code
musi być ciągiem zawierającym kod JavaScript, np.alert('hello')
.Parametr
code_url
musi zawierać adres URL pliku JavaScript. Aby określić wiele plików wejściowych, możesz uwzględnić wiele parametrówcode_url
. compilation_level
-
Dokumentację właściwości
compilation_level
znajdziesz w artykule Flagi i opcje. output_format
- Format danych wyjściowych usługi kompozytora Closure Compiler. Dostępne są 3 formaty danych wyjściowych:
xml
-
Format wyjściowy
xml
opakowuje żądane informacje w prawidłowym formacie XML.Dane wyjściowe XML wyglądają tak:
<compilationResult> <compiledCode>var a="hello";alert(a);</compiledCode> <statistics> <originalSize>98</originalSize> <compressedSize>35</compressedSize> <compileTime>0</compileTime> </statistics> </compilationResult>
Sekcja
compiledCode
zawiera skompresowany kod JavaScript utworzony przez usługę Closure Compiler. Ta sekcja wyświetla się tylko wtedy, gdy w żądaniu dodasz parametroutput_info
o wartościcompiled_code
. I podobnie, sekcjastatistics
pojawia się tylko wtedy, gdy parametroutput_info
ma wartośćstatistics
.Jeśli dodasz parametr
output_info
o wartościwarnings
, a kompilator wyświetli ostrzeżenie, w danych wyjściowych pojawi się tagwarnings
:<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>
Jeśli dodasz ciąg
output_info
o wartościerrors
, usługa Closure Compiler będzie zawierać tagerrors
, jeśli w kodzie znajdzie się błąd składni lub inny problem, który uniemożliwia kompilację. Tagerrors
wygląda tak:<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>
Atrybuty
file
,line
icol
w tagacherror
iwarning
wskazują, gdzie wystąpił błąd kompilatora Closure.Jeśli usługa kompilatora Closure Compuler napotka błąd, który uniemożliwia przetwarzanie Twoich danych wejściowych, dane wyjściowe będą wyglądać tak:
<compilationResult> <serverErrors> <error code="1">Over quota</error> </serverErrors> </compilationResult>
json
-
Format wyjściowy
json
opakowuje żądane informacje w ciągu znaków JSON (JavaScript Object Notation). Ocena tego ciągu znaków, gdy JavaScript zwraca obiekt JavaScript.Dane wyjściowe JSON wyglądają tak:
{ "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 } }
Format JSON jest podobny do formatu XML: każdy tag w danych wyjściowych XML odpowiada właściwości o tej samej nazwie w obiekcie JSON.
text
- Format wyjściowy
text
zwraca nieprzetworzony tekst bez tagów ani nawiasów JSON. Jeślioutput_info
zawieracompiled_code
, tekst zawiera JavaScript. Jeślioutput_info
zawierawarnings
, tekst zawiera ostrzeżenia. Jeślioutput_info
zawierastatistics
, tekst zawiera statystyki.
Parametr
output_format
przyjmuje domyślnie wartośćtext
. output_info
-
Wskazuje rodzaj danych wyjściowych kompilatora. Dostępne są 4 rodzaje danych wyjściowych:
compiled_code
- Skompresowana i zoptymalizowana wersja JavaScriptu.
warnings
- Komunikaty o możliwych błędach w kodzie JavaScript.
errors
- Komunikaty zawierające błędy składni lub inne błędy w kodzie JavaScript.
statistics
-
Informacje o poziomie kompresji kompilatora Closure. W przypadku wyników w formacie xml usługa Closure Compiler zwraca statystyki w następującym formacie:
<compilationResult> ... <statistics> <firstStatisticName>24</firstStatisticName> <secondStatisticName>15</secondStatisticName> </statistics> </compilationResult>
Opcjonalne parametry żądania
js_externs
-
Wartością tego parametru musi być kod JavaScript deklarujący nazwy funkcji lub inne symbole. Użyj właściwości
js_externs
, aby zachować symbole zdefiniowane poza kompilowanym kodem. Parametrjs_externs
ma zastosowanie tylko wtedy, gdy używaszcompilation_level
o wartościADVANCED_OPTIMIZATIONS
. Więcej informacji znajdziesz w artykule na temat kompilacji zaawansowanej. externs_url
-
Wartość tego parametru musi być adresem URL pliku zawierającego kod JavaScript, który deklaruje nazwy funkcji lub inne symbole. Symbole zadeklarowane w tym pliku są przechowywane dokładnie w taki sam sposób, jak symbole wymienione bezpośrednio w parametrze
js_externs
. Parametrexterns_url
ma zastosowanie tylko wtedy, gdy używaszcompilation_level
o wartościADVANCED_OPTIMIZATIONS
. Więcej informacji znajdziesz w artykule na temat kompilacji zaawansowanej.Możesz podać ten parametr wielokrotnie, jeśli masz wiele plików rozszerzeń.
exclude_default_externs
-
Domyślnie usługa Closure Compiler używa standardowego pliku rozszerzeń, który deklaruje typowe symbole zewnętrzne, takie jak
document
, oraz wszystkie jej metody. Jeśli NIE chcesz używać tych popularnych rozszerzeń, umieść w żądaniu parametrexclude_default_externs
o wartościtrue
.Zobacz Zaawansowane kompilacje i zewnętrzne, aby dowiedzieć się więcej o rozszerzeniach.
output_file_name
-
Jeśli występuje, usługa Closure Compiler przechowuje skompilowany kod w pamięci podręcznej i udostępnia go za pomocą specjalnego adresu URL. W ciągu tej godziny skompilowany kod możesz przetestować, wskazując przeglądarce ten adres URL. Adres URL ma ten format:
https://closure-compiler.appspot.com/code/bf067f356d510e1c7b81347eb84f65d2/[value of output_file_name]
formatting
-
Dokumentację właściwości
formatting
znajdziesz w artykule Flagi i opcje. W tym samym żądaniu możesz podać wiele parametrówformatting
. -
use_closure_library
-
Jeśli podasz w parametrze
use_closure_library
wartośćtrue
, kompilator utworzy instrukcjęgoog.require()
w kodzie źródłowym i dostarczy kod biblioteki Closure wymagany przez takie instrukcje. Wykonuje także optymalizacje dostosowane do kodu biblioteki Closure. Więcej informacji o bibliotece Closure znajdziesz w jej dokumentacji. Więcej informacji o funkcjigoog.require()
znajdziesz w artykule Znajdowanie drogi w bibliotece Closure.Parametr
use_closure_library
przyjmuje domyślnie wartośćfalse
. warning_level
-
Dokumentację właściwości
warning_level
znajdziesz w artykule Flagi i opcje. -
language
-
Więcej informacji o odpowiedniej opcji
language_in
znajdziesz w artykule Flagi i opcje. -
language_out
-
Dokumentację właściwości
language_out
znajdziesz w artykule Flagi i opcje. -
rewrite_polyfills
-
Dokumentację właściwości
rewrite_polyfills
znajdziesz w artykule Flagi i opcje. -
use_types_for_optimization
-
Dokumentację właściwości
use_types_for_optimization
znajdziesz w artykule Flagi i opcje.
Komunikaty o błędach
Jeśli serwer nie przetworzy Twojego żądania, zobaczysz jeden z komunikatów o błędzie serwera podanych w tabeli poniżej. Pamiętaj, że te komunikaty o błędach serwera różnią się od błędów kompilacji i ostrzeżeń. Błędy i ostrzeżenia dotyczące kompilatora wskazują, że w komponencie Closure Compiler wystąpił problem w kodzie JavaScript. Komunikaty o błędach serwera wskazują, że kompilator nie może w ogóle przetworzyć kodu z powodu błędu w Twoim żądaniu.
Kod błędu | Komunikat o błędzie | Znaczenie |
---|---|---|
2 | Nieznany tryb wyjściowy. | Wartość parametru output_format jest inna niż xml , json lub text . |
4 | Nieznany poziom kompresji. | Wartość parametru compilation_level jest inna niż WHITESPACE_ONLY , SIMPLE_OPTIMIZATIONS lub ADVANCED_OPTIMIZATIONS . |
8 | Dane POST są za duże. |
Rozmiar danych wysłanych do usługi Closure Compiler przekracza 200 000 bajtów. Zarówno interfejs kompilatora, jak i wywołania interfejsu API komunikują się z usługą za pomocą żądania HTTP POST,a łączna ilość danych wysłanych w tym żądaniu nie może przekraczać 200 000 bajtów. W przypadku wywołań interfejsu API ten limit odnosi się do łącznej ilości tekstu we wszystkich parametrach żądań. W interfejsie kompilatora zamkniętych ograniczeń ten limit dotyczy całkowitej ilości tekstu zarówno w kodzie źródłowym, jak i opcjach kompilacji, takich jak @code_url . Jeśli Twoje żądanie jest zbyt duże, przenieś kod źródłowy do osobnych plików i odwołuj się do nich za pomocą @code_url lub użyj aplikacji Closure Compiler na komputerze lokalnym.
|
9 | Plik jest za duży. | Łączna ilość kodu ze wszystkich plików code_url , wszystkich plików externs_url , całego kodu js_code oraz całego kodu js_externs przekracza 1024 000 bajtów. |
10 | Nie można pobrać treści z adresu URL. | Podczas próby pobrania pliku JavaScript wskazanego w parametrze code_url lub pliku rozszerzeń wskazanych w parametrze externs_url wystąpił błąd. Sprawdź, czy URL jest prawidłowy i czy plik zezwala na wyświetlanie. |
12 | URL ma nieprawidłowy format. | Wartość parametru code_url lub externs_url nie jest poprawnie sformatowana. |
13 | Brak danych wyjściowych do utworzenia, ale zażądano kompilacji. | Nie określono parametru output_info . |
14 | Nieznana wartość parametru exit_info | Wartość parametru output_info jest inna niż compiled_code , warnings lub statistics . |
16 | Nieznany poziom ostrzeżenia | Wartość parametru warning_level jest inna niż QUIET , DEFAULT lub VERBOSE . |
17 | Nieznana opcja formatowania. | Wartość parametru formatting jest inna niż pretty_print . |
18 | Nieznany parametr w żądaniu HTTP | Żądanie HTTP zawiera parametr inny niż jeden z wymienionych w tym dokumencie. |
19 | Niedozwolona wartość w pliku wyjściowym | Nazwa pliku wyjściowego zawiera znak w postaci cyfry, litery, kropki, podkreślenia lub łącznika albo zawiera 2 kolejne kropki (.. ) |
22 | Ostatnio wykonano zbyt wiele kompilacji. Spróbuj ponownie później. | Zbyt wiele kompilacji z Twojego komputera. Ponowne kompilowanie powinno być możliwe po godzinie. |
23 | Wyjątek kompilacji (z tłem) | Kompilator uległ awarii. Tekst błędu będzie zawierać informacje, które ułatwią Google debugowanie problemu. |
24 | Nieobsługiwany typ zasobu wejściowego | Typ zasobu to http:, więc plik wejściowy nie zostanie pobrany. |