Arrête de faire des "npm install" dans ta CI/CD !
Il y a bien mieux et plus sûr, et en plus c'est fait pour ça ! Utilise "npm ci".
Mais elle fait quoi cette commande ?
- Bah elle installe tes dépendances !
- Comme "npm install" alors, qu'est-ce que tu me racontes ?!?
- Oui, mais non... "npm ci" se base sur le package-lock.json, et "npm install" se base sur le package.json.
Du coup avec "npm ci" tu es sûr de la version installée, alors que si une nouvelle version sort et est dans le scope de ton package.json, avec un "npm install" tu vas avoir une version installée en prod différente de celle sur ta machine.
De plus, avant l'installation, ton node_modules/ est supprimé. Dans une CI/CD et une image fraîche ça ne fait rien du coup, mais c'est plus propre.
Dans les faits, tu devrais utiliser "npm ci" aussi lorsque tu installes un nouveau projet sur ta machine. "npm install" ne sert que lorsque tu veux installer une nouvelle dépendance ou lorsque tu veux les mettre à jour (en suivant les patterns dans ton package.json).
Bref, l'installation de tes dépendances est ainsi plus fiable avec "npm ci".
A ton avis, ici le "CI" c'est pour "Continus Integration" ou "Clean Install" ?