En esta ocasión quería compartir con vosotros un comando de npm alternativo al famoso “npm install” llamado “npm ci”, el cual nos permite disminuir el tiempo de instalación de las dependencias de nuestro paquete npm. Primero os adjunto dos enlaces directos a la documentación oficial de npm donde explican perfectamente el funcionamiento de dicho comando:
https://docs.npmjs.com/cli/ci.html
https://blog.npmjs.org/post/171556855892/introducing-npm-ci-for-faster-more-reliable
Yo he utilizado este comando en vez del clásico “npm install” para mejorar el tiempo de nuestros pipelines CI/CD, obteniendo los siguiente resultados para un proyecto Angular 5:
- Con npm install
added 2971 packages from 2738 contributors in 362.225s
- Con npm ci
added 1989 packages in 183.035s
Este comando instala exactamente las dependencias que hemos configurado en nuestro “package-lock.json”, ahorrándose ciertas comprobaciones y resolución de dependencias que realiza “npm install” desde el “package.json” original. Hay que tener en cuenta que si no tenemos nuestro “package-lock.json” sincronizado con “package.json”, el comando lanzará un error.
Además, antes de realizar la instalación, elimina la carpeta “node_modules” e instala exactamente la versión de las dependencias indicadas en “package-lock.json”, por lo que lograremos que todos los miembros del equipo y las builds configuradas en nuestro flujo DevOps partan de una instalación limpia y con las dependencias idénticas.