클로저 컴파일러 서비스는 지원 중단되었으며 삭제될 예정입니다. 컴파일러를 로컬에서 실행하는 것이 좋습니다.
개요
클로저 컴파일러 서비스에서 컴파일된 코드 또는 기타 정보를 요청하려면 URL https://closure-compiler.appspot.com/compile
에 HTTP POST 요청을 보내야 합니다. 요청 본문에는 필수 요청 매개변수에 나열된 매개변수가 포함되어야 하며 선택적 요청 매개변수에 나열된 선택적 매개변수도 포함될 수 있습니다.
가능한 경우 이 페이지는 플래그 및 옵션의 명령줄 옵션에 관한 표준 문서를 따릅니다. 웹 서비스에서 사용할 수 없는 명령줄 옵션은 여기에 설명되어 있지 않습니다. 일부 요청 매개변수는 명령줄에서 사용할 수 없거나 이름이 다릅니다.
서버가 요청을 처리하지 못하면 서버 오류 메시지가 표시됩니다. 이러한 메시지는 오류 메시지 섹션에 설명되어 있습니다.
요청 매개변수
필수 요청 매개변수
js_code
또는code_url
-
컴파일할 자바스크립트입니다. 이러한 매개변수는 하나 이상 포함해야 하며 두 매개변수를 모두 포함할 수 있습니다.
js_code
매개변수는 자바스크립트를 포함하는 문자열(예:alert('hello')
)이어야 합니다.code_url
매개변수에는 자바스크립트 파일의 URL이 포함되어야 합니다. 여러 개의code_url
매개변수를 포함하여 여러 입력 파일을 지정할 수 있습니다. compilation_level
-
플래그 및 옵션에서
compilation_level
에 관한 문서를 참고하세요. output_format
- 클로저 컴파일러 서비스 출력의 형식입니다. 다음과 같은 세 가지 출력 형식이 있습니다.
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 서비스에서 생성한 압축된 자바스크립트가 포함됩니다. 이 섹션은 요청에 값이compiled_code
인output_info
매개변수를 포함하는 경우에만 표시됩니다. 마찬가지로statistics
섹션은 값이statistics
인output_info
매개변수를 포함하는 경우에만 표시됩니다.값이
warnings
인output_info
매개변수를 포함하고 컴파일러에서 경고를 생성하면 출력에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>
코드에
errors
의output_info
를 포함하면 코드에 구문 오류나 컴파일을 방해하는 기타 문제가 포함되어 있다면 클로저 컴파일러 서비스에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>
error
및warning
태그의file
,line
,col
속성은 클로저 컴파일러 서비스에서 오류가 발생한 위치를 나타냅니다.클로저 컴파일러 서비스에 입력 처리를 방해하는 오류가 발생하면 다음과 같이 출력됩니다.
<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 출력의 경우 클로저 컴파일러 서비스는 통계를 다음 형식으로 반환합니다.
<compilationResult> ... <statistics> <firstStatisticName>24</firstStatisticName> <secondStatisticName>15</secondStatisticName> </statistics> </compilationResult>
요청 매개변수(선택사항)
js_externs
-
이 매개변수의 값은 함수 이름 또는 기타 기호를 선언하는 자바스크립트 코드여야 합니다. 컴파일하는 코드 외부에 정의된 기호를 유지하려면
js_externs
를 사용하세요.js_externs
매개변수는ADVANCED_OPTIMIZATIONS
의compilation_level
를 사용하는 경우에만 효과가 있습니다. 자세한 내용은 고급 컴파일을 참고하세요. externs_url
-
이 매개변수의 값은 함수 이름 또는 기타 기호를 선언하는 자바스크립트가 포함된 파일의 URL이어야 합니다. 이 파일에 선언된 기호는
js_externs
매개변수에 직접 나열된 기호와 정확히 동일한 방식으로 보존됩니다.externs_url
매개변수는ADVANCED_OPTIMIZATIONS
의compilation_level
를 사용하는 경우에만 효과가 있습니다. 자세한 내용은 고급 컴파일을 참고하세요.외부 파일이 여러 개 있는 경우 이 매개변수를 여러 번 지정할 수 있습니다.
exclude_default_externs
-
기본적으로 클로저 컴파일러 서비스는
document
및 모든 메서드와 같이 외부에 정의된 일반적인 기호를 선언하는 표준 extern 파일을 사용합니다. 이러한 일반적인 extern을 사용하지 않으려면 요청에 값이true
인exclude_default_externs
매개변수를 포함하세요.Exter에 관한 자세한 내용은 고급 컴파일 및 Externs를 참조하세요.
output_file_name
-
클로저 컴파일러 서비스가 있는 경우 컴파일된 코드를 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()
문을 찾아 이러한 문으로 요청된 클로저 라이브러리 코드를 제공합니다. 클로저 라이브러리 코드용으로 특별히 설계된 최적화도 수행합니다. 클로저 라이브러리에 대한 자세한 내용은 클로저 라이브러리 문서를 참조하세요.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
에 관한 문서를 참고하세요.
오류 메시지
서버가 요청을 처리하지 못하면 아래 표에 나열된 서버 오류 메시지 중 하나를 받게 됩니다. 이러한 서버 오류 메시지는 컴파일러 오류 및 경고와 다릅니다. 컴파일러 오류 및 경고는 클로저 컴파일러가 자바스크립트 코드에서 문제를 발견했음을 나타냅니다. 서버 오류 메시지는 요청의 오류로 인해 컴파일러에서 코드를 전혀 처리할 수 없음을 나타냅니다.
오류 코드 | 오류 메시지 | 의미 |
---|---|---|
2 | 알 수 없는 출력 모드입니다. | output_format 매개변수의 값은 xml , json 또는 text 가 아닙니다. |
4 | 알 수 없는 압축 수준입니다. | compilation_level 매개변수의 값은 WHITESPACE_ONLY , SIMPLE_OPTIMIZATIONS 또는 ADVANCED_OPTIMIZATIONS 가 아닙니다. |
8 | POST 데이터가 너무 큽니다. |
클로저 컴파일러 서비스에 전송한 데이터의 크기가 200,000바이트를 초과합니다. 컴파일러 서비스 UI와 API 호출은 모두 HTTP POST 요청을 사용하여 서비스와 통신하며 이 요청에서 전송된 총 데이터 양은 200,000바이트를 초과할 수 없습니다. API 호출의 경우 이 한도가 모든 요청 매개변수의 총 텍스트 양에 적용됩니다. 클로저 컴파일러 UI의 경우 이 제한은 소스 코드와 컴파일러 옵션(예: @code_url )의 총 텍스트 양에 적용됩니다. 요청이 너무 크면 소스 코드를 별도의 파일로 이동하고 @code_url 를 사용하여 참조하거나 로컬 머신에서 클로저 컴파일러 애플리케이션을 사용하세요.
|
9 | 파일이 너무 큽니다. | 모든 code_url 파일, 모든 externs_url 파일, 모든 js_code 코드 및 모든 js_externs 코드의 총 코드 양이 1,024,000바이트를 초과합니다. |
10 | URL에서 콘텐츠를 가져올 수 없습니다. | 클로저 컴파일러 서비스에서 code_url 매개변수에 표시된 자바스크립트 파일 또는 externs_url 매개변수에 표시된 externs 파일을 검색하려고 하면 오류가 발생했습니다. 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 | 최근에 너무 많은 컴파일을 실행했습니다. 나중에 다시 시도하세요. | 머신에서 컴파일을 너무 많이 제출했습니다. 1시간이 지나면 컴파일을 다시 실행할 수 있습니다. |
23 | 컴파일러 예외 (백트레이스 포함) | 컴파일러가 다운되었습니다. 오류 텍스트에는 Google에서 문제를 디버그하는 데 도움이 되는 정보가 포함됩니다. |
24 | 지원되지 않는 입력 리소스 유형 | 리소스 유형이 http:가 아니므로 입력 파일을 검색할 수 없습니다. |