Lorsque vous exécutez npm install --save somepackage
, il ajoute généralement quelque chose comme ceci dans package.json:
"dependencies": {
"somepackage": "^2.1.0"
}
Étant donné que la version est précédée d'un caret (^), cela signifie que si vous exécutez ultérieurement npm install
, la version 2.3.0 risque d'être installée à la place. Cela peut être indésirable pour des raisons assez évidentes. npm shrinkwrap
est utile, mais ne résout pas vraiment le problème.
Donc, j'ai plusieurs questions:
Pour spécifier par défaut une version exacte, vous pouvez modifier votre configuration npm avec save-exact :
npm config set save-exact true
Vous pouvez également spécifier la version avec un tilde avec save-prefix
Et, non, vous ne pouvez pas forcer l'utilisateur à mettre à jour une version mineure ou une version de correctif, NPM utilise semver et c'est la méthode recommandée de publication des packages.
Vous pouvez changer le comportement par défaut en utilisant l'option --save-exact.
// npm
npm install --save --save-exact react
// yarn
yarn add --exact react
J'ai créé un article de blog à ce sujet si quelqu'un le recherche à l'avenir.
http://www.dalejefferson.com/blog/how-to-save-exact-npm-package-versions/
Courir:
npm install --save --save-exact my-module@my-specific-version
Ajouter une réponse pour rendre ce conseil plus facile à voir.