- O que é o compilador de fechamento? Por que usar esse recurso?
- Qual é a diferença entre o compilador de fechamento e os outros compressores JavaScript que existem?
- O Frontend Compiler pode compilar o JavaScript incorporado em HTML?
- Posso usar o Frontend Compiler com outros minificadores JavaScript?
- Como posso depurar o JavaScript produzido pelo Frontend Compiler?
- O compilador faz alguma compensação entre a velocidade de execução do meu aplicativo e o tamanho do código de download?
- O compilador otimiza a velocidade?
- Existem restrições para o tamanho dos arquivos que podem ser compilados?
- O compilador de fechamento está disponível para todas as plataformas?
- O compilador pode processar qualquer JavaScript legal?
- Como o Compiler Compiler funciona com a closure Library?
-
Meu código para de funcionar ou o compilador produz erros quando eu compilo com
ADVANCED_OPTIMIZATIONS
. Por quê? - Por que há feeds de linha aleatórios em scripts compilados?
- Tenho avisos de direitos autorais ou um texto de licença de código aberto que precisam aparecer no meu código-fonte. Como faço para evitar que o Compiler de fechamento remova esse texto?
- 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.
- 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()
ewith()
, 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.