Nach dem Update meines NPM auf die neueste Version (von 3.X auf 5.2.0) und dem Ausführen von npm install
Bei einem vorhandenen Projekt erhalte ich ein automatisch erstelltes package-lock.json
Datei.
Ich kann sagen package-lock.json
gibt mir einen genauen Abhängigkeitsbaum im Gegensatz zu package.json
.
Allein aufgrund dieser Informationen scheint es, als ob package.json
ist redundant und wird nicht mehr benötigt.
Sind beide notwendig, damit NPM funktioniert?
Ist es sicher oder möglich, nur das package-lock.json
Datei?
Die Dokumente in package-lock.json ( doc1 , doc2 ) erwähnen nichts darüber.
Bearbeiten :
Nach einigem Nachdenken kam ich zu dem Schluss, dass, wenn jemand Ihr Projekt mit einer älteren Version von NPM (vor 5.x) verwenden möchte, immer noch alle Abhängigkeiten installiert werden, jedoch mit weniger genauen Versionen (Patchversionen).
Benötigen Sie beide package-lock.json
und package.json
? Nein.
Benötigen Sie die package.json
? Ja.
Kannst du ein Projekt nur mit dem package-lock.json
? Nein.
Das package.json
wird nicht nur für Abhängigkeiten verwendet, sondern auch zum Definieren von Projekteigenschaften, Beschreibungen, Autoren- und Lizenzinformationen, Skripten usw. Das package-lock.json
wird ausschließlich verwendet, um Abhängigkeiten zu einer bestimmten Versionsnummer zu sperren.
Wenn Ihre Frage lautet, ob die Sperrdatei an Ihre Quellcodeverwaltung übergeben werden soll, sollte dies der Fall sein. Es wird unter bestimmten Umständen ignoriert.
Ich habe festgestellt, dass Pull-Anforderungen und Commit-Verlauf aufgebläht sind. Wenn sich dies ändert, führen Sie ein separates Commit durch.
package-lock.json
: Zeichnet die genaue Version jedes installierten Pakets auf, mit der Sie sie erneut installieren können. Zukünftige Installationen können einen identischen Abhängigkeitsbaum erstellen.
package.json
: Zeichnet die Mindestversion auf, die Ihre App benötigt. Wenn Sie die Versionen eines bestimmten Pakets aktualisieren, wird die Änderung hier nicht berücksichtigt.