2017-07-27 8 views
1

Können Sie mir sagen, warum wir NPM 5 oder höher benötigen, um semantische Versionierungsprobleme zu vermeiden? Mit anderen Worten, wie können wir es vermeiden mit package-lock.json Datei? Können wir dieses Problem nicht vermeiden, wenn wir dieselbe package.json Datei auf dem gesamten Entwicklungscomputer für dasselbe Projekt verwenden? Ich bin ein wenig verwirrt hier. Hoffe, du gibst ein Feedback dafür.Semantisches Versionierungsproblem und npm 5 oder höher

Antwort

2

Dies kann vermieden werden, wenn Ihre package.json Dateilisten-Pakete wie:

"@angular/core": "4.2.6", 
"@angular/forms": "4.2.6", 
"@angular/http": "4.2.6", 

statt

"@angular/core": "^4.2.6", 
"@angular/forms": "^4.2.6", 
"@angular/http": "~4.2.6", 

die Tilde oder Kappe (~ ^) Zeichen von package.json npm Durch das Entfernen genau wird installieren gleiche Version auf allen Maschinen. Es ist jedoch sicher, Tilde- oder Cap-Zeichen hinzuzufügen, sodass Sie kleine Versionsupdates Ihrer Pakete installieren können, ohne die Datei zu aktualisieren. Aber manchmal kann dies zu Problemen führen, wenn der Paket-Entwickler eine kleine Änderung in der kleinen Version einpackt.

package-lock.json wird das gleiche tun, es entfernt die Tilde oder Kappe Zeichen und markiert die konkrete Version des Pakets installiert werden. Und macht Sperrdatei Priorität, um die Paketversionsinformation während der Installation der Pakete zu erhalten.

Edit: Schöne Erklärung von Angular University auf Youtube.

+0

Vielen Dank für die nette Erklärung :) – Sampath

Verwandte Themen