Faire "npm install --enregistrer" ajouter un strict version de package.json
Lorsque vous exécutez npm install --save somepackage
, habituellement, il ajoute à quelque chose comme ceci dans le package.json:
"dependencies": {
"somepackage": "^2.1.0"
}
Parce que la version est préfixé par un accent circonflexe(^), cela signifie que si vous, plus tard,npm install
, il peut installer la version 2.3.0 de la place. Cela peut être indésirable pour des raisons assez évidentes. npm shrinkwrap
est utile, mais ne parvient pas à résoudre le problème.
Donc, j'ai plusieurs questions:
- Lors de l'installation d'un paquet, est-il possible de spécifier que vous souhaitez qu'il soit à une version spécifique dans le paquet.json (pas de curseur avant le numéro de version)?
- Lors de la publication d'un package npm, est-il possible de prévenir le défaut de y compris le curseur avant la version quand d'autres développeurs installer votre paquet?
Vous devez vous connecter pour publier un commentaire.
À spécifier par défaut une version exacte, vous pouvez modifier votre mnp config avec enregistrez-exact:
npm config set save-exact true
Vous pouvez également spécifier le préfixe version avec un tilde avec enregistrez-préfixe
Et, non, vous ne pouvez pas forcer l'utilisateur à mettre à jour pour un mineur ou une version de patch, MNP utilise semver et c'est le recommander moyen de modules d'édition.
--save-exact
à la ligne de commande. Par exemple,npm install --save --save-exact somepackage
.top level packges
- ceux spécifiés danspackage.json
, mais ne fonctionne pas pour tous les paquets quitop level packages
dépend. yarnpkg.com la résolution de ce problème avec lesyarn.lock
fichier, vous avez toujours des versions exactes de tous vos colis.Vous pouvez changer le comportement par défaut en utilisant l'option --save-exact option.
J'ai créé un blog post à ce sujet si quelqu'un est à la recherche pour cela dans le futur.
https://www.dalejefferson.com/blog/how-to-save-exact-npm-package-versions/
Exécuter:
Ajout d'une réponse à faire ce conseil plus facile à voir.