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
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.
- 1. SoapFormatter Versionierungsproblem
- 2. MySQL Abfrage wählen Gruppen mit 5 Mitgliedern oder höher
- 3. Cassandra 3.0 und höher erfordern Java 8u40 oder höher
- 4. Segmentierungsfehler beim Aufruf von mosrcat() mit 5 oder höher argment
- 5. Sollte ich Xcode 5 'Semantisches Problem: nicht deklarierter Selektor' beheben?
- 6. Accessoren sind nur verfügbar, wenn ECMAScript Targeting 5 und höher
- 7. Semantisches HTML für Bestätigungs-, Fehler- und Warnmeldungen
- 8. Semantisches Merge-Tool
- 9. Ist ALS.checkpointInterval höher oder niedriger?
- 10. Semantisches HTML für Nachrichten
- 11. Kompilierungsfehler AFNetworking, Semantisches Problem?
- 12. Semantisches Dropdown 100% Breite?
- 13. Cassandra 2.0 und höher erfordern Java 7u25 oder höher, aber ich verwende jdk1.7.0_101
- 14. npm 5 Installationsordner ohne Symlink mit
- 15. @ reactivex/rxjs und rxjs NPM-Pakete für RxJS 5
- 16. Semantisches HTML-Markup für FAQs
- 17. Update-Node & NPM VS Cordova Update 5
- 18. Nachdem Knoten 5, npm ERR! Code EINVALIDTYP?
- 19. semantisches Markup für Python difflib.HtmlDiff
- 20. Quelle 1.3 (Verwendung -Quelle 5 oder höher, um Generika zu aktivieren)
- 21. Maven - benutze -source 5 oder höher um zu aktivieren ... während das Projekt erstellt wurde
- 22. Concurrency in Play 2.1 oder höher
- 23. malloc (5) = 5 Zeichen oder 5 Byte?
- 24. Semantisches Äquivalent von async für
- 25. ANRLR4 lexer semantisches Prädikat Problem
- 26. GloVe-Methoden für semantisches Clustering
- 27. maven: (Verwenden Sie -source 5 oder höher, um statische Importdeklarationen zu aktivieren)
- 28. HTML5 semantisches Markup für Blogpost-Tags und Kategorien
- 29. Moviecontrol in iPhone OS 3.2 oder höher
- 30. MapView in Fragment (Android 4.0 oder höher)
Vielen Dank für die nette Erklärung :) – Sampath