2017-07-27 1 views
1

Pouvez-vous me dire pourquoi avons-nous besoin de NPM 5 ou plus pour éviter les problèmes de versionnage sémantique? En d'autres termes, comment pouvons-nous l'éviter en utilisant le fichier package-lock.json? Ne pouvons-nous pas éviter ce problème si nous utilisons le même fichier package.json sur toutes les machines de développement pour le même projet? Je suis un peu confus ici. J'espère que vous donnerez un feedback pour cela.Problème de versionnage sémantique et npm 5 ou supérieur

Répondre

2

Cela peut être évité si vos package.json listes de fichiers paquets comme:

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

au lieu de

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

En retirant le tilde ou le capuchon (~, ^) signe package.json MNP installer exacte même version sur toutes les machines. Mais il est prudent d'ajouter un signe tilde ou cap, de sorte que vous pouvez installer de petites mises à jour de vos paquets sans mettre à jour le fichier. Mais parfois, cela peut causer des problèmes, lorsque le développeur du paquet emballe un changement de rupture dans une petite version.

package-lock.json fera de même, il supprime le signe tilde ou cap, et marque la version concrète de l'emballage à installer. Et fera la priorité du fichier de verrouillage pour obtenir les informations de version du paquet lors de l'installation des paquets.

Modifier: Belle explication de Angular University sur Youtube.

+0

Merci beaucoup pour cette belle explication :) – Sampath