Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

369
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda