Referência da API Closed Compiler Service

O serviço do compilador de interdição foi descontinuado e será removido. Considere executar o compilador localmente.

Visão geral

Para solicitar o código compilado ou outras informações do serviço do Frontend Compiler, envie uma solicitação POST HTTP ao URL https://closure-compiler.appspot.com/compile. O corpo da solicitação precisa conter os parâmetros listados em Parâmetros de solicitação obrigatórios, além de conter qualquer um dos parâmetros opcionais listados em Parâmetros de solicitação opcionais.

Quando possível, esta página usa a documentação canônica para ver as opções de linha de comando em Sinalizações e opções. As opções de linha de comando não disponíveis no webserver não estão documentadas aqui. Alguns parâmetros de solicitação também não estão disponíveis na linha de comando ou têm um nome diferente.

Se o servidor não processar a solicitação, você receberá uma mensagem de erro. Essas mensagens são descritas na seção Mensagens de erro.

Parâmetros de solicitação

Parâmetros de solicitação obrigatórios

js_code ou code_url

O JavaScript a ser compilado. É necessário incluir pelo menos um desses parâmetros.

O parâmetro js_code precisa ser uma string contendo JavaScript, como alert('hello').

O parâmetro code_url precisa conter o URL de um arquivo JavaScript. É possível incluir vários parâmetros code_url para especificar vários arquivos de entrada.

compilation_level

Consulte a documentação de compilation_level em Sinalizações e opções.

output_format
O formato de saída do serviço do Frontend Compiler. Há três formatos de saída possíveis:
xml

O formato de saída xml envolve as informações solicitadas em XML válido.

A saída XML tem esta aparência:

        <compilationResult>
          <compiledCode>var a="hello";alert(a);</compiledCode>
          <statistics>
            <originalSize>98</originalSize>
            <compressedSize>35</compressedSize>
            <compileTime>0</compileTime>
          </statistics>
        </compilationResult>
      

A seção compiledCode contém o JavaScript compactado produzido pelo serviço Compiler Compiler. Esta seção só vai aparecer se você incluir um parâmetro output_info com um valor de compiled_code na solicitação. Da mesma forma, a seção statistics só aparece se você incluir um parâmetro output_info com um valor de statistics.

Se você incluir um parâmetro output_info com um valor de warnings e o compilador produzir um aviso, a saída incluirá uma tag 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>
      

Se você incluir uma output_info com um valor de errors, o serviço do Compiler Compiler incluirá uma tag errors se seu código contiver um erro de sintaxe ou outro problema que impeça a compilação. A tag errors tem esta aparência:

        <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>
      

Os atributos file, line e col das tags error e warning indicam onde o serviço Compiler Compiler encontrou o erro.

Se o serviço Compile Compiler encontrar um erro que impede o processamento da entrada, a saída será semelhante a esta:

        <compilationResult>
          <serverErrors>
            <error code="1">Over quota</error>
          </serverErrors>
        </compilationResult>
      
json

O formato de saída json une as informações solicitadas em uma string JavaScript Object Notation (JSON). A avaliação dessa string como JavaScript retorna um objeto JavaScript.

A saída JSON é semelhante a esta:

{
"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
  }
}
      

O formato JSON é semelhante ao formato XML: cada tag na saída XML corresponde a uma propriedade com o mesmo nome no objeto JSON.

text
O formato de saída text retorna texto bruto sem tags ou colchetes JSON. Se output_info incluir compiled_code, o texto conterá JavaScript. Se output_info incluir warnings, o texto conterá mensagens de aviso. Se output_info incluir statistics, o texto vai conter estatísticas.

O valor padrão do parâmetro output_format é text.

output_info

Indica o tipo de saída que você quer do compilador. Existem quatro tipos possíveis de saída:

compiled_code
Uma versão compactada e otimizada do JavaScript de entrada.
warnings
Mensagens que indicam possíveis bugs no JavaScript.
errors
Mensagens que indicam erros de sintaxe ou outros erros no JavaScript.
statistics

Informações sobre o grau de compactação que o compilador de fechamento alcança. Para a saída XML, o serviço do Compiler Compiler retorna estatísticas no seguinte formato:

        <compilationResult>
          ...
          <statistics>
            <firstStatisticName>24</firstStatisticName>
            <secondStatisticName>15</secondStatisticName>
          </statistics>
        </compilationResult>
      

Parâmetros de solicitação opcionais

js_externs

O valor desse parâmetro precisa ser um código JavaScript que declara nomes de função ou outros símbolos. Use js_externs para preservar símbolos definidos fora do código que você está compilando. O parâmetro js_externs só terá efeito se você estiver usando um compilation_level de ADVANCED_OPTIMIZATIONS. Consulte Compilação avançada para ver mais informações.

externs_url

O valor desse parâmetro precisa ser o URL de um arquivo que contenha o JavaScript que declare nomes de funções ou outros símbolos. Os símbolos declarados nesse arquivo são preservados da mesma forma que os símbolos listados diretamente no parâmetro js_externs. O parâmetro externs_url só terá um efeito se você estiver usando um compilation_level de ADVANCED_OPTIMIZATIONS. Consulte Compilação avançada para ver mais informações.

Você pode especificar esse parâmetro várias vezes se tiver vários arquivos.

exclude_default_externs

Por padrão, o serviço Compile Compiler usa um arquivo externo externo que declara símbolos comuns definidos externamente, como document e todos os métodos dele. Se você NÃO quiser usar essas funções externas comuns, inclua na solicitação um parâmetro exclude_default_externs com um valor de true.

Consulte Compilação avançada e funções externas para ver mais informações sobre funções externas.

output_file_name

Se estiver presente, o serviço do Compiler Compiler armazena em cache o código compilado por uma hora e o disponibiliza por um URL especial. Durante esse horário, é possível testar o código compilado apontando o navegador para esse URL. O URL tem este formato:

https://closure-compiler.appspot.com/code/bf067f356d510e1c7b81347eb84f65d2/[value of output_file_name]

formatting

Consulte a documentação de formatting em Sinalizações e opções. É possível fornecer vários parâmetros formatting na mesma solicitação.

use_closure_library

Se você fornecer ao parâmetro use_closure_library um valor de true, o compilador procurará instruções goog.require() no código-fonte e fornecerá o código da Biblioteca closure solicitado por qualquer uma dessas instruções. Ele também faz otimizações projetadas especificamente para o código da Biblioteca outro fechamento. Consulte a documentação da Biblioteca closure para ver mais informações. Consulte Como encontrar seu caminho na Biblioteca Bloqueio, para mais informações sobre a função goog.require().

O parâmetro use_closure_library é definido por padrão como false.

warning_level

Consulte a documentação de warning_level em Sinalizações e opções.

language

Consulte a documentação sobre a opção language_in equivalente em Sinalizações e opções.

language_out

Consulte a documentação de language_out em Sinalizações e opções.

rewrite_polyfills

Consulte a documentação de rewrite_polyfills em Sinalizações e opções.

use_types_for_optimization

Consulte a documentação de use_types_for_optimization em Sinalizações e opções.

Mensagens de erro

Se o servidor não processar sua solicitação, você receberá uma das mensagens de erro listadas na tabela abaixo. Essas mensagens de erro do servidor são diferentes dos erros e avisos do compilador. Os erros e avisos do compilador indicam que o Frontend Compiler encontrou um problema no seu código JavaScript. As mensagens de erro do servidor indicam que o compilador não consegue processar o código devido a um erro na solicitação.

Código do erroMensagem de erroSignificado
2Modo de saída desconhecido.O valor do parâmetro output_format é diferente de xml, json ou text.
4Nível de compactação desconhecido.O valor do parâmetro compilation_level é diferente de WHITESPACE_ONLY, SIMPLE_OPTIMIZATIONS ou ADVANCED_OPTIMIZATIONS.
8Os dados POST são muito grandes. O tamanho dos dados enviados para o serviço do Frontend Compiler excede 200.000 bytes. A IU do serviço do compilador e suas chamadas de API usam uma solicitação HTTP POST para se comunicar com o serviço, e a quantidade total de dados enviados nessa solicitação não pode exceder 200.000 bytes. Para chamadas de API, esse limite se aplica à quantidade total de texto em todos os parâmetros de solicitação. Para a IU do Frontend Compiler, esse limite se aplica à quantidade total de texto no código-fonte e nas opções do compilador, como @code_url. Se a solicitação for muito grande, mova o código-fonte para arquivos separados e faça referência a eles usando @code_url ou use o aplicativo Frontend Compiler na sua máquina local.
9Arquivo muito grande.A quantidade total de código de todos os arquivos code_url, de externs_url, de js_code e de js_externs excede 1.024.000 bytes.
10Não é possível recuperar o conteúdo do URL.Ocorreu um erro quando o serviço do Frontend Compiler tentou recuperar um arquivo JavaScript indicado no parâmetro code_url ou um arquivo ternário indicado no parâmetro externs_url. Verifique se o URL está correto e se as permissões do arquivo permitem a visualização.
12O URL não está formatado corretamente.O valor de code_url ou externs_url não é um URL bem formado.
13Nenhuma informação de saída a ser produzida, mas a compilação foi solicitada. Nenhum parâmetro output_info foi especificado.
14Valor de output_info desconhecidoO valor de um parâmetro output_info é diferente de compiled_code, warnings ou statistics.
16Nível de aviso desconhecidoO valor do parâmetro warning_level é diferente de QUIET, DEFAULT ou VERBOSE.
17Opção de formatação desconhecida.O valor do parâmetro formatting é diferente de pretty_print.
18Parâmetro desconhecido na solicitação HTTPA solicitação HTTP contém um parâmetro diferente dos listados neste documento.
19Valor ilegal para output_file_name. O nome do arquivo de saída contém um caractere, como número, letra, ponto, sublinhado ou traço, ou contém dois pontos consecutivos (..).
22Foram feitas muitas compilações recentemente. Tente novamente mais tarde. Você enviou muitas compilações da sua máquina. Após uma hora, você poderá compilar novamente.
23Exceção do compilador (com backtrace) O compilador falhou. O texto do erro conterá informações para ajudar o Google a depurar o problema.
24Tipo de recurso de entrada incompatível O tipo de recurso não é http:, portanto, o arquivo de entrada não será recuperado.