webentwicklung-frage-antwort-db.com.de

Benötige ich sowohl package-lock.json als auch package.json?

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).

81
Omri Luzon

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.

41
Markus Stefanko

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.

4
Stanley Kirdey

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.

3