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

368
Views
¿Qué necesito almacenar en caché en mi trabajo de CI para evitar que ngcc se vuelva a compilar cada vez?

Con angular 9 y su nuevo motor de compilación IVY, mis tiempos de compilación de CI han aumentado sustancialmente. Por supuesto, esto se debe a que ngcc se ejecuta en muchos módulos.

p.ej

 Compiling @angular/core : es2015 as esm2015 Compiling @angular/common : es2015 as esm2015 ...

Pensé que ngcc caché las bibliotecas compiladas en node_modules , pero mis node_modules están almacenados en caché en mi trabajo de CI y todavía se está compilando, por lo que no puede ser.

¿Qué ruta debo almacenar en caché para evitar volver a compilar todos los módulos con ngcc en cada compilación?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

ACTUALIZACIÓN 1:

Los puntos de Ivy entry codificados de forma rígida se han eliminado de la compilación angular si está utilizando la última versión, anteriormente estaba wrongly hardcoded dentro Angular init TS github code link

Ahora/lo último que puedes hacer

ngcc --properties es2015 browser module main



Solo para versiones anteriores, consulte la Actualización 1 para versiones más nuevas

ngcc --properties es2015 browser module main --first-only --create-ivy-entry-points

O como parte de tu compilación dentro de package.json

 { "scripts": { "postinstall": "ngcc --properties es2015 browser module main --first-only --create-ivy-entry-points" } }

Algunos árbitros configuran a Travis para

 # custom caching for .travis.yml install: - npm ci # keep the npm cache around to speed up installs cache: directories: - "$HOME/.npm" # you can add other

Opción 2: Mucho más rápido con yarn o pnpm

 pnpm install // or yarn install // or npm install --prefer-offline --no-audit
over 4 years ago · Santiago Trujillo Report

0

Conserve package-lock.json y la carpeta node_modules/ entre cada ejecución. Espero que NO esté ejecutando una imagen nueva cada vez.

Si se actualizan package.json o package-lock.json en la próxima compilación de CI, solo se preprocesarán e instalarán los actualizados. Otros no se instalarán una y otra vez.

Hay varias pautas de lo que se debe y no se debe hacer con respecto a la carpeta package-lock.json y node_modules. Encontrarás mucho para leer al respecto en Internet y no me voy a involucrar.

Regla del pulgar: mantenga package-lock.json y node_modules juntos

Básicamente, se instala un paquete (mencionado en package.json) si

  1. No hay ninguna entrada en package-lock.json
  2. Hay una versión actualizada disponible que la ingresada en package-lock.json
  3. El paquete se eliminará si ya no se refiere
over 4 years ago · Santiago Trujillo Report

0

En resumen, no puedes hacer eso. La versión actual de ngcc no busca ningún cambio y siempre vuelve a compilar todos los paquetes al llamar al comando ngcc. Este caso se puede resolver en el futuro con el enlazador angular , pero no es seguro, seguro que mejorará los tiempos de compilación.

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!