Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

263
Visualizações
¿Por qué Angular 9 tiene que compilar previamente el código?

Acabo de actualizar mi proyecto a Angular 9 y lo primero que noté es que el tiempo de compilación aumentó significativamente en mi CI (de 2 minutos a 4 minutos).

Al analizar los registros, cada vez que se realizan las pruebas o la compilación, la CLI realiza una compilación previa. Esto se debe a la nueva arquitectura de Ivy , pero según tengo entendido, esta compilación solo debería ocurrir con código que no sea compatible con Ivy.

Entonces, ¿por qué veo mucha Compiling @angular/common : es2015 as esm2015 (principalmente de paquetes @angular) en mi compilación? ¿No debería el código Angular ser compatible con Ivy?

Nota: Esto también sucede con un proyecto nuevo (solo con pocas bibliotecas).

Actualizar Esto sucede con todos los comandos que requieren una compilación. Ex:

  • ng test --code-coverage=true --watch=false --browsers=ChromeHeadle
  • ng b -c=staging --aot

Actualización 2

Estoy agregando mis compilaciones para comparar: antes de angular 9 y después de la migración de angular 9 (la compilación sigue fallando, pero podemos usar la prueba unitaria como referencia, de ~ 2 minutos a ~ 4 minutos de ejecución total)

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Este artículo explica de manera útil por qué Angular 9 compila dependencias con ngcc y la hoja de ruta de compilación de Ivy.

En resumen, debido a que el conjunto de instrucciones de Ivy se estabilizará solo en Angular 10, el equipo de Angular recomienda no publicar aún paquetes compilados en Angular 9 Ivy. Después de Angular 10, se alentará a los mantenedores de paquetes a publicar paquetes Ivy; Los paquetes de View Engine seguirán siendo compatibles, pero no recomendados.

A partir de esto, concluyo que algún tiempo después del lanzamiento de Angular 10, veremos una compilación significativamente menor de ngcc, en algunos casos ninguna, según los paquetes utilizados por un proyecto en particular. En Angular 9, el paso de compilación ngcc es un compromiso necesario del que tendrá dificultades para deshacerse.

En cuanto a la velocidad de CI, los documentos oficiales sugieren que ngcc se puede ejecutar explícitamente. Creo que podría ser posible almacenar en caché este paso en CI, pero al no estar al tanto de su configuración particular, no puedo sugerir nada más allá de la dirección de investigación.

Actualización 1: Angular 9.1 promete mejoras en la velocidad de compilación de ngcc.

Actualización 2: Angular 12 desaprueba la compilación heredada y la canalización de representación de View Engine.

Actualización 3: Angular 13 ha eliminado ViewEngine

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda