Faire `npm install –save` append une version ssortingcte à package.json

Lorsque vous exécutez npm install --save somepackage , cela ajoute généralement quelque chose comme ceci dans package.json:

 "dependencies": { "somepackage": "^2.1.0" } 

Comme la version est précédée d’un caret (^), cela signifie que si vous exécutez npm install ultérieurement, la version 2.3.0 pourra ê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:

  1. Lors de l’installation d’un package, est-il possible de spécifier que vous souhaitez qu’il soit défini sur une version spécifique dans package.json (pas de curseur avant le numéro de version)?
  2. Lors de la publication d’un package à npm, existe-t-il un moyen d’empêcher l’inclusion par défaut du curseur avant la version lorsque d’autres développeurs installent votre package?

Pour spécifier par défaut une version exacte, vous pouvez changer 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 le mode semver et c’est le mode de publication recommandé.

Vous pouvez modifier 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 blog à ce sujet si quelqu’un le recherche à l’avenir.

https://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.