- O que é o Closure Compiler? Por que usar?
- Qual é a diferença entre o Closure Compiler e os outros compressores de JavaScript disponíveis?
- O Closure Compiler pode compilar JavaScript incorporado em HTML?
- Posso usar o Closure Compiler com outros minificadores de JavaScript?
- Como posso depurar o JavaScript produzido pelo Closure 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 para velocidade?
- Há alguma restrição no tamanho dos arquivos que podem ser compilados?
- O Closure Compiler está disponível para todas as plataformas?
- O compilador pode processar qualquer JavaScript válido?
- Como o Closure Compiler funciona com a Closure Library?
-
Meu código para de funcionar ou o compilador produz erros quando compilo com
ADVANCED_OPTIMIZATIONS
. Por quê? - Por que há feeds de linha aleatórios em scripts compilados?
- Tenho avisos de direitos autorais ou texto de licença de código aberto que precisam aparecer no meu código-fonte. Como faço para evitar que o Closure Compiler remova esse texto?
- O que é o Closure Compiler? Por que usar?
- O Closure Compiler é uma ferramenta para fazer o download e a execução do JavaScript mais rápidos. É possível usar o Closure Compiler para reduzir o tamanho dos arquivos JavaScript e torná-los mais eficientes.
- How is the Closure Compiler different from the other JavaScript compressors that are out there?
-
Em geral, o Closure Compiler atende ou excede a compactação de outras ferramentas de minimização de código e melhora os tempos de download do seu aplicativo da Web. Além disso, o Closure Compiler ajuda a encontrar erros de sintaxe durante o desenvolvimento (em vez de durante o teste) e identificar padrões de código potencialmente com bugs.
No modo simples, o Closure Compiler consegue ter um desempenho melhor do que outras ferramentas porque usa uma análise semelhante à do compilador para encontrar outras maneiras de minimizar o tamanho do código. Por exemplo, o Closure Compiler pode inserir funções usadas em apenas algumas ocorrências, reutilizar nomes de variáveis e pré-calcular expressões constantes.
No modo avançado, o Closure Compiler também pode usar as anotações de tipo adicionadas para encontrar bugs difíceis de detectar.
- Não. O Closure Compiler funciona apenas em arquivos que contêm JavaScript.
- Posso usar o Closure Compiler com outros minificadores de JavaScript?
-
Sim. O Closure Compiler lê qualquer JavaScript válido e gera JavaScript válido. Portanto, é possível aplicar o Closure Compiler a um arquivo JavaScript antes ou depois de executar o arquivo em um minificador diferente.
Lembre-se de que o Closure Compiler e outros minificadores podem ter expectativas sobre o código recebido. Um minificador que remove 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 Closure Compiler?
-
Se o código compilado estiver gerando erros ou apresentando um comportamento inesperado,
use mapas de origem 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 mostrem o código-fonte original em vez do compilado.
Para que o Closure Compiler produza um mapa de origem, transmita a flag
--create_source_map
na linha de comando. Exemplo: Em seguida, se você estiver usando um navegador que oferece suporte a mapas de origem (como Chrome ou Firefox), poderá definir pontos de interrupção da mesma forma que faria para código não compilado. As ferramentas para desenvolvedores do navegador vão mostrar a linha de código correspondente na origem original. Para mais informações sobre as ferramentas para desenvolvedores do Chrome, incluindo informações sobre mapas de origem, consulte Depuração de JavaScript.$ java -jar compiler.jar --js example.js --create_source_map ./example-map --js_output_file example-compiled.js
- O compilador faz alguma compensação entre a velocidade de execução do meu aplicativo e o tamanho do código de download?
- Sim. Qualquer compilador de otimização faz concessões. Algumas otimizações de tamanho introduzem pequenas sobrecargas de velocidade. No entanto, os desenvolvedores do Closure Compiler tiveram cuidado para não introduzir um tempo de execução adicional significativo. Algumas das otimizações do compilador até diminuem o tempo de execução (consulte a próxima pergunta).
- O compilador otimiza para velocidade?
- Na maioria dos casos, um código menor é mais rápido, já que o tempo de download geralmente é o fator de velocidade mais importante em aplicativos da Web. As otimizações que reduzem redundâncias também aceleram o tempo de execução do código.
- Há alguma restrição no 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 compilador independente não tem.
- O Closure Compiler está disponível para todas as plataformas?
- O compilador é escrito em Java, então pode ser executado em qualquer lugar em que o Java é executado.
- O compilador pode processar qualquer JavaScript válido?
-
Na maioria das vezes. Alguns elementos do JavaScript, incluindo
eval()
ewith()
, podem invalidar as proposições em que as transformações do compilador se baseiam. - Quanto preciso saber sobre desenvolvimento da Web para usar o Closure Compiler?
- O Closure Compiler é uma ferramenta para desenvolvimento em JavaScript. Portanto, você precisa saber como programar em JavaScript para usar o compilador. Mas qualquer pessoa que usa JavaScript pode se beneficiar do uso do Closure Compiler.
- Como o Closure Compiler funciona com a Closure Library?
- O Closure Compiler oferece verificações e otimizações especiais para código que usa a biblioteca Closure. Além disso, o serviço do Closure Compiler pode incluir automaticamente arquivos da Closure Library. Como encontrar o que você precisa no Closure descreve a sintaxe para declarar as partes do Closure que você precisa. Consulte a referência da API para informações sobre como usar a biblioteca Closure com a API. Para usar a Closure Library com o aplicativo Closure Compiler, primeiro faça o download da Closure Library. O suporte à Closure Library é ativado por padrão no aplicativo compilador.
-
Meu código para de funcionar ou o compilador produz erros quando faço a
compilação com
ADVANCED_OPTIMIZATIONS
. Por quê? -
O uso do modo avançado geralmente exige alguma preparação e mudanças
no código. Compilação avançada e externs explica como garantir que seu código funcione com
ADVANCED_OPTIMIZATIONS
. - Por que há feeds de linha aleatórios em scripts compilados?
- O Closure Compiler adiciona quebras de linha intencionalmente a cada 500 caracteres, aproximadamente. Firewalls e proxies às vezes corrompem ou ignoram arquivos JavaScript grandes com linhas muito longas. Adicionar quebras de linha a cada 500 caracteres evita esse problema. Remover as quebras de linha não afeta a semântica de um script. O impacto no tamanho do código é pequeno, e o compilador otimiza o posicionamento da quebra de linha para que a penalidade de tamanho do código seja ainda menor quando os arquivos são compactados com gzip.
- Tenho avisos de direitos autorais ou texto de licença de código aberto que precisam aparecer no meu código-fonte. Como faço para impedir que o Closure Compiler remova esse texto?
-
O Closure Compiler é compatível com a tag
@license
do JSDoc. Adicione a tag@license
a qualquer comentário do JSDoc para preservar o comentário na saída do compilador. Consulte Anotar JavaScript para o Closure Compiler para mais informações.