NPM : faut-il commiter le fichier package-lock.json ?

NPM : faut-il commiter le fichier package-lock.json ? Le fichier package-lock.json est généré à chaque modification apportée au fichier "package.json" ou dans l'architecture du dossier "node_modules".

La version 5 du gestionnaire de paquet de Node.js, NPM, introduit un nouveau fichier dans l'arborescence de votre projet : le fichier "package-lock.json". Vous vous demandez si vous devez commiter ce fichier lorsque vous travaillez dans le cadre d'un projet collaboratif ? Il est conseillé de le faire et nous allons vous expliquer pourquoi.

Le fichier "package-lock.json" est un fichier qui est généré lorsque vous apportez des modifications dans le fichier "package.json" ou dans l'architecture du dossier "node_modules". Ce fichier stocke la structure exacte de votre arborescence de dépendances à chaque installation.

Ce fichier a été conçu spécifiquement pour les projets collaboratifs, il est donc important de bien le commiter. Cela permet de gérer le fait que le dossier "node_modules" ne soit pas dans les sources commitées, car Node.js est capable de réinstaller les dépendances de votre projet à partir de ce fichier. Il est également conçu pour que les utilisateurs du projet puissent plus facilement revenir en arrière dans le projet et retrouver les dépendances qu'ils avaient à un instant T. De plus, en examinant les changements de ce fichier, vous pouvez voir les changements qui ont été effectués dans l'arborescence des dépendances.

Ce fichier est conçu pour ne pas être publié avec votre projet. Il sera ignoré s'il est situé en dehors du dossier principal de votre projet. Son utilisation est la même que le fichier "npm-shrinkwrap.json" à la différence que ce dernier peut être publié.

Si les deux fichiers sont présents à la racine de votre projet, alors ce sera le fichier "npm-shrinkwrap.json" qui sera pris en compte en priorité, le fichier "package-lock.json" sera ignoré. Vous trouverez plus d'information sur ce fichier en faisant appel à la commande d'aide de npm : "npm help package-lock.json".

JavaScript