Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

264
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!