Die korrekte Antwort auf die Frage, wie Sie sicherstellen können, dass Ihre Abhängigkeiten genau in den Versionen installiert werden, die in Ihrer package-lock.json aufgeführt sind, lautet npm ci
.
npm ci ist ein Befehl, der im npm-Paketmanager eingeführt wurde und der für Continuous Integration-Umgebungen optimiert ist. Er bietet konsistentere Installationen und ist schneller als der reguläre npm-Installationsbefehl.
Im Gegensatz zu npm install
ignoriert npm ci
die package.json-Datei und installiert ausschließlich die Versionen, die in der package-lock.json- oder npm-shrinkwrap.json-Datei festgelegt sind. Dies gibt Entwicklern die Gewissheit, dass die installierten Abhängigkeiten genau den in der Lock-Datei festgelegten Versionen entsprechen und dass sie über verschiedene Systeme hinweg konsistent sind.
Hier ist ein einfacher Anwendungsfall für npm ci
:
$ git clone https://github.com/username/projekt.git
$ cd projekt
$ npm ci
Mit den obigen Befehlen können Sie ein Projekt von GitHub klonen und anschließend in das Verzeichnis des Projekts wechseln. Der Befehl npm ci
installiert nun die exakten Abhängigkeiten, die in der package-lock.json des Projekts definiert sind.
Dabei ist es wichtig zu beachten, dass npm ci
das vorhandene node_modules-Verzeichnis löscht und alle Abhängigkeiten von Grund auf neu installiert. Dies gewährleistet eine reproduzierbare Umgebung, die die Fehlerbehebung erleichtert und die Zuverlässigkeit der Bereitstellungen erhöht.
In erster Linie wurde npm ci
für den Einsatz in Continuous Integration-Pipelines entwickelt. Es ist aber auch eine nützliche Option für Entwickler, die reproduzierbare Entwicklungsbedingungen benötigen oder die Installation von Abhängigkeiten beschleunigen möchten.