Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 9038|Antwort: 0

Was ist das package-lock.json, das durch die NPM-Installation generiert wird?

[Link kopieren]
Veröffentlicht am 13.12.2017 13:17:45 | | |
Für NPM-Modifikation node_modules Baum oder jede Aktion package.json wird automatisch ein package-lock.json generiert. Er beschreibt den genauen Baum, der erzeugt wird, sodass nachfolgende Installationen denselben Baum erzeugen können, unabhängig von zwischenliegenden Abhängigkeitsupdates.

Diese Datei soll im Quellcode-Repository eingereicht werden und steht für verschiedene Zwecke zur Verfügung:

Beschreibt eine einzige Darstellung des Abhängigkeitsbaums, um sicherzustellen, dass Teammitglieder, Deployments und kontinuierliche Integration sicherstellen, dass exakt dieselben Abhängigkeiten installiert sind.

Bieten Sie den Nutzern ein Tool bereit, um in einen vorherigen node_modules-Zustand zu "vorrücken", ohne das Verzeichnis selbst commit zu müssen.

Ermöglichen Sie eine größere Sichtbarkeit von Baumänderungen durch lesbare Unterschiede in der Quellcodekontrolle.

Und den Installationsprozess zu optimieren, indem npm erlaubt, die doppelte Metadaten-Auflösung zuvor installierter Pakete zu überspringen.

Ein zentrales Detail bei package-lock.json ist, dass es nicht veröffentlicht werden kann und ignoriert wird, wenn es außerhalb des Top-Pakets gefunden wird. Es teilt sich das Format mit npm-shrinkwrap.json, es ist im Grunde dieselbe Datei, erlaubt aber das Veröffentlichen. Dies wird nicht empfohlen, es sei denn, Sie installieren ein CLI-Tool oder nutzen den Release-Prozess anderweitig zur Erstellung eines Produktionspakets.

Wenn sowohl package-lock.json als auch npm-shrinkwrap.json im Root-Verzeichnis eines Pakets existieren, werden package-lock.json vollständig ignoriert.

Originallink: https://docs.npmjs.com/files/package-lock.json


Seit der Veröffentlichung von npm 5.x hat sich die Rolle des 5.6.0-Locks vielfach verändert, und nun sind viele kleine weiße Texte im Internet in der vorherigen Dokumentübersetzung festgefahren.

Ich habe von npm3.x auf npm5 aktualisiert, aber festgestellt, dass das Phänomen beim Ausführen von 'npm i' nicht mit dem populärwissenschaftlichen Artikel im Internet übereinstimmt.

Es wird erwähnt, dass unabhängig davon, wie package.json Datei geändert wird, npm bei wiederholter Ausführung npm gemäß den in der Sperrdatei beschriebenen Versionsinformationen heruntergeladen wird.

Es wird auch erwähnt, dass npm beim Wiederholen von npm i die Lock-Informationen ignoriert und das Update-Modul gemäß den semantischen Version-Versionen des Pakets im package.json herunterlädt (Lock scheint nutzlos zu sein).

**Laut den Informationen haben sich die Regeln von npm I seit der Veröffentlichung von npm 5.0 dreimal geändert. **

1. npm 5.0.x Version, egal wie sich die package.json ändert, npm I wird gemäß der Sperrdatei heruntergeladen

package-lock.json Datei, die nach package.json Änderung nicht aktualisiert wird · Ausgabe #16866 · NPM/NPM-https://github.com/npm/npm/issues/16866
Dieses Problem beschwert sich über dieses Problem, offensichtlich habe ich die package.json manuell geändert, warum gibst du mir nicht ein Upgrade-Paket! Und dann führt das zum Thema 5.1.0...

2. Nach Version 5.1.0 ignoriert die npm-Installation die Sperrdatei, um die neueste npm herunterzuladen

Dann hat jemand dieses Problem aufgeworfen: Warum wird Package-Lock ignoriert? · Ausgabe #17979 · NPM/NPM-https://github.com/npm/npm/issues/17979
Die Beschwerde entwickelte sich schließlich zu den Regeln nach Version 5.4.2.

3. Warum wird Package-Lock nach Version 5.4.2 ignoriert? · Ausgabe #17979 · NPM/NPM-https://github.com/npm/npm/issues/17979


Grob gesagt, wenn die package.json geändert wird und die package.json sich von der Sperrdatei unterscheidet, lädt npm beim Ausführen von 'npm i' das neueste Paket entsprechend Versionsnummer und semantischer Bedeutung des Pakets herunter und aktualisiert es auf Lock.

Wenn beide im gleichen Zustand sind, wird die Ausführung von npm I gemäß Lock heruntergeladen, unabhängig davon, ob die eigentliche Paketversion neu ist oder nicht.






Vorhergehend:Berichte Statistiken und ergänzen Sie die Zeitmethode ohne Daten
Nächster:npm-Tutorial (4): Installieren Sie npm-Pakete lokal
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com