Heim > Web-Frontend > js-Tutorial > Einführung in die Versionsnummer der Bibliothek in package.json in Node.js

Einführung in die Versionsnummer der Bibliothek in package.json in Node.js

不言
Freigeben: 2019-04-02 10:15:56
nach vorne
1867 Leute haben es durchsucht

Dieser Artikel bietet Ihnen eine Einführung in die Versionsnummer der package.json-Bibliothek in Node.js. Ich hoffe, dass er für Freunde hilfreich ist.

~Der Unterschied zwischen ^

Ich bin in letzter Zeit auf einige Probleme gestoßen. Es funktioniert lokal gut, aber online treten Probleme auf, und ich kann sie auch lokal nicht reproduzieren . Später, nachdem ich das Verzeichnis node_modules gelöscht und neu installiert hatte, konnte ich mir den Git-Verlauf ansehen und stellte fest, dass niemand die Versionsnummer in package.json geändert hatte, also habe ich mir die Bibliothek im Paket genauer angesehen .json. Versionsnummer; der Unterschied zwischen

~ und ^

    "babel-loader": "^7.1.1",
    "body-parser": "~1.15.2"
Nach dem Login kopieren

npm install --save xxx, gibt der Verwendung von ^~ mit Versionsnummer x.y.z Zum Beispiel

x: Hauptversionsnummer, wenn Sie inkompatible API-Änderungen vornehmen

y: Nebenversionsnummer, wenn Sie abwärtskompatible Funktionsprobleme vornehmen
z: Revisionsnummer, wenn Sie Probleme mit der Abwärtskompatibilität behoben

, die auf die neueste Version von y aktualisiert werden, zum Beispiel

: ~1.15.2, diese Bibliothek stimmt mit der neuesten Version von 1.15.z überein, wenn Wenn 1.16.0 erscheint, ~x.y.zbody-parser wird nicht automatisch aktualisiert, sondern auf die neueste Version von x aktualisiert, zum Beispiel
: ^7.1.1, diese Bibliothek entspricht der neuesten Version von 7.y.z , wenn 8.1.1, wird es nicht automatisch aktualisiert ^x.y.zbabel-loaderSie können sich auf die offizielle Erklärung von npm beziehen

^1.2.3 := >=1.2.3 <2.0.0

^0.2.3 := >=0.2.3 <0.3.0
^0.0.3 := >=0.0.3 <0.0.4

Befolgen Sie diese Versionsnummernregel In den meisten Fällen gibt es kein Problem mit den Abhängigkeitspaketen, aber npm ist eine Open-Source-Welt und nicht alle halten sich strikt an diese Regel, sodass die oben genannten Probleme auftreten

Warum eine Paketsperre erforderlich ist

Es gibt mehrere mögliche Gründe: In einigen Fällen kann package.json nicht garantieren, dass die Abhängigkeitsversionen, die nach der Ausführung von npm install auf jedem eigenen Computer installiert werden, gleich sind

1 Wenn package.json Die Version des abhängigen Pakets ist ein Versionsbereich. Sobald npm i ausgeführt wird, wird das Paket auf die neueste Version aktualisiert

2. Auch wenn Sie von einer festen Version des Pakets abhängig sind (z. B. A 1.1.1). ), aber Sie hängen möglicherweise von Paket A ab, und A kann bei der Deklaration von Abhängigkeiten auch Semser-Namen verwenden, z. B. ^1.2.3. Wenn Paket B eine neue Version veröffentlicht, führt dies auch zur Installation von Paket B zur aktualisierten Version
3. Verschiedene Versionen des npm-Programms, die von verschiedenen Personen verwendet werden

Wenn die Versionen abhängiger Pakete inkonsistent sind, führt dies zu inkonsistentem Verhalten zwischen der Entwicklungsumgebung und der Produktionsumgebung es kann zu Unterschieden in den Produktumgebungen verschiedener Teammitglieder führen

So lösen Sie das Problem inkonsistenter Paketversionen

1.npm Verwenden Sie package-lock.json Datei zur Lösung dieses Problems

Durch die Ausführung von npm install wird automatisch die Datei package.json generiert. Solange Sie normale Installationen, Aktualisierungen usw. durchführen, können npm-Befehle die Datei package.json und package-lock.json ändern Datei wird automatisch synchron geändert

npm install xxx
npm rm xxx
npm update xxx
Nach dem Login kopieren

2.npm unterstützt auch npm-shrinkwrap.json und package-lock Die .json-Funktion ist genau die gleiche

Ausführen

, um npm- zu generieren Shrinkwrap.json

Dieser Befehl erstellt eine neue oder überschreibt die vorhandene Datei npm-shrinkwrap.json basierend auf der Datei package-lock.json. Mit diesem Befehl erstellte und aktualisierte Dateien haben Vorrang vor allen anderen vorhandenen oder zukünftigen package-lock.json-Dateien. npm shrinkwrap
3. Garn verwenden

Die Verwendung von Garn hat die folgenden Hauptvorteile

Schnell: Jedes heruntergeladene Paket wird zwischengespeichert, ohne dass es wiederholt heruntergeladen werden muss parallel Zuverlässig mit maximaler Ressourcenauslastung
  • Verwenden Sie eine detaillierte und prägnante Sperrdatei und einen deterministischen Algorithmus zur Installation von Abhängigkeiten, der sicherstellen kann, dass der auf einem System ausgeführte Installationsprozess auch auf anderen Systemen auf die gleiche Weise abläuft das System.
  • Sicherheit: Überprüfen Sie die Integrität des Installationspakets, bevor es ausgeführt wird
  • Garn ist schneller als npm, was das Problem lösen kann inkonsistente Paketversionen.
[Verwandte Empfehlungen:
JavaScript-Video-Tutorial

]

Das obige ist der detaillierte Inhalt vonEinführung in die Versionsnummer der Bibliothek in package.json in Node.js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage