Perguntas frequentes


O que é o Close Compiler? Por que usar?
O Frontend Compiler é uma ferramenta para agilizar o download de JavaScript e a execução. Você pode usar o Frontend Compiler para reduzir o tamanho dos seus arquivos JavaScript e torná-los mais eficientes.
Qual é a diferença entre o Compile Compiler e os outros compressores JavaScript que existem?

Geralmente, o Frontend Compiler precisa atender ou exceder a compactação de outras ferramentas de minificação do código e melhorar os tempos de download do seu aplicativo da Web. Além disso, ele ajuda a encontrar erros de sintaxe durante o desenvolvimento (e não durante os testes) e identificar padrões de código com bugs.

No modo Simples, o Frontend Compiler pode fazer melhor do que outras ferramentas, porque usa uma análise semelhante a um compilador para encontrar outras maneiras de minimizar o tamanho do código. Por exemplo, o Frontend Compiler pode incorporar funções que são usadas apenas em algumas ocorrências, reutilizar nomes de variáveis e pré-calcular expressões constantes.

No Modo avançado, o Frontend Compiler também pode usar as anotações de tipo adicionadas para localizar bugs difíceis de detectar.

O Frontend Compiler pode compilar JavaScript incorporado em HTML?
Não. O Frontend Compiler só funciona em arquivos que contêm apenas JavaScript.
Posso usar o Frontend Compiler com outros minificadores JavaScript?

Sim. O Frontend Compiler lê qualquer JavaScript válido e gera um JavaScript válido. Portanto, você pode aplicar o Frontend Compiler a um arquivo JavaScript antes ou depois de executar o arquivo com um minificador diferente.

Lembre-se de que o Frontend Compiler e outros redutores podem ter expectativas sobre o código recebido. Um minificador que remove os comentários pode remover licenças ou informações de anotação necessárias para outra ferramenta, por exemplo.

Como posso depurar o JavaScript produzido pelo Frontend Compiler?
Se o código compilado estiver gerando erros ou mostrando um comportamento inesperado, use o Source Maps para depurar o problema. Um mapa de origem fornece um mapeamento entre o código compilado e o código-fonte original para que as ferramentas de desenvolvedor do navegador possam mostrar seu código-fonte original em vez do código compilado. Para fazer com que o Frontend Compiler produza um mapa de origem, transmita a sinalização --create_source_map na linha de comando. Por exemplo:
$ java -jar compiler.jar --js example.js --create_source_map ./example-map --js_output_file example-compiled.js
Para saber mais sobre as ferramentas para desenvolvedores do Chrome, incluindo informações sobre mapas de origem, consulte Depuração de JavaScript.
O compilador faz alguma compensação entre a velocidade de execução do meu aplicativo e o tamanho do código de download?
Sim. Todo compilador otimizador tem vantagens e desvantagens. Algumas otimizações de tamanho introduzem sobrecargas de velocidade pequena. No entanto, os desenvolvedores do Compiler Compiler tiveram o cuidado de não introduzir tempos de execução adicionais significativos. Algumas das otimizações do compilador até mesmo reduzem o tempo de execução (consulte a próxima pergunta).
O compilador otimiza a velocidade?
Na maioria dos casos, os códigos menores são mais rápidos, já que o tempo de download geralmente é o fator de velocidade mais importante em aplicativos da Web. Otimizações que reduzem as redundâncias também aceleram o tempo de execução do código.
Há restrições quanto ao tamanho dos arquivos que podem ser compilados?
O serviço da Web de compilação tem um tamanho máximo de arquivo, mas o aplicativo de compilação autônomo não.
O compilador de fechamento está disponível para todas as plataformas?
Como o compilador é escrito em Java, ele pode ser executado em qualquer lugar que seja executado por Java.
O compilador pode processar qualquer JavaScript legal?
Na maioria das vezes. Algumas construções de JavaScript, incluindo eval() e with(), podem invalidar suposições em que as transformações do compilador se baseiam.
O que preciso saber sobre o desenvolvimento da Web para usar o Compiler de fechamento?
O Frontend Compiler é uma ferramenta para desenvolvimento em JavaScript. Portanto, você precisa saber como programar em JavaScript para usar o compilador. Mas qualquer pessoa que usar JavaScript pode se beneficiar do uso do Frontend Compiler.
Como o Compiler Compiler funciona com a closure Library?
O Frontend Compiler fornece verificações e otimizações especiais para o código que usa a outro Biblioteca. Além disso, o serviço pode incluir automaticamente os arquivos da biblioteca. Como encontrar o caminho de interdição descreve a sintaxe para declarar as partes da interdição de que você precisa. Consulte a Referência de APIs para mais informações sobre como usar a biblioteca outro SDK. Para usar a Closed Library com o aplicativo Frontend Compiler, primeiro você precisa fazer o download da Frontend. A compatibilidade com a Biblioteca Frontend é ativada no aplicativo do compilador por padrão.
Meu código para de funcionar ou o compilador produz erros quando eu compilo com ADVANCED_OPTIMIZATIONS. Por quê?
O uso do modo avançado geralmente requer algumas mudanças de preparação e de código. O artigo Compilação avançada e funções externas explica como garantir que seu código funcione com ADVANCED_OPTIMIZATIONS.
Por que há feeds de linha aleatórios em scripts compilados?
O compilador de fechamento adiciona intencionalmente quebras de linha a cada 500 caracteres. Firewalls e proxies às vezes corrompem ou ignoram grandes arquivos JavaScript com linhas muito longas. Adicionar quebras de linha a cada 500 caracteres evita esse problema. A remoção das quebras de linha não afeta a semântica do script. O impacto no tamanho do código é pequeno, e o compilador otimiza a posição da quebra de linha para que a penalidade do tamanho do código seja ainda menor quando os arquivos são compactados em gzip.
Tenho avisos de direitos autorais ou texto de licença de código aberto que precisam aparecer no meu código-fonte. Como posso evitar que o Compiler de fechamento remova esse texto?
O Compile Compiler oferece suporte à tag @license do JSDoc. Adicione a tag @license a qualquer comentário do JSDoc para preservar o comentário na saída do compilador. Para mais informações, consulte Como anotar JavaScript para o Compiler Compiler.