es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿La caché de npm acelera `npm install`?

Considere las siguientes compilaciones:

Estos dos repositorios son casi idénticos, la única diferencia es que el último repositorio almacena en caché npm a través de la Acción de GitHub setup-node, mientras que el primero no lo hace. En otras palabras, la única diferencia entre los repositorios está en el archivo .github/workflows/main:

name: Build Pipeline
on: push

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v2
        with:
          node-version: '11'
          # La siguiente línea solo está presente en el último repositorio
          cache: 'npm'
      - run: npm install
      - run: npm run build

Aunque la compilación en “setup-node-with-cache” utiliza correctamente la caché de npm (como se evidencia en la salida del paso “Run actions/setup-node@v2”), el tiempo de ejecución del paso “Run npm install” es casi el mismo que el paso correspondiente de la compilación en “setup-node-without-cache”.

¿No se supone que el tiempo de ejecución del paso “Run npm install” de la compilación en “setup-node-with-cache” debería ser significativamente más corto que el paso correspondiente de la compilación en “setup-node-without-cache”, ya que debería utilizar los paquetes de npm almacenados en caché? ¿Me estoy perdiendo algo aquí?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en node.js, npm, integración continua, devops y acciones de GitHub, puedo decir que el tiempo de ejecución del paso “Run npm install” en la construcción de “setup-node-with-cache” debería ser significativamente más corto que el paso correspondiente en la construcción de “setup-node-without-cache”. Sin embargo, puede haber múltiples razones por las cuales esto no ocurre, como:

    • Es posible que la caché no se haya configurado correctamente y, por lo tanto, no se haya utilizado en la construcción.
    • Es posible que la caché no haya contenido todos los paquetes requeridos y, por lo tanto, npm haya tenido que descargar paquetes adicionales.
    • Es posible que la caché se haya invalidado y, por lo tanto, npm haya tenido que volver a descargar todos los paquetes.
    • La mejora de rendimiento podría no ser significativa debido al tamaño del proyecto o al número de dependencias instaladas.

    Sin una investigación más detallada, es difícil determinar la razón exacta detrás de la falta de mejora en el rendimiento.

Comments are closed.