Tilde ~ correspond à la version mineure, si vous avez installé un paquet qui a 1.4.2 et après votre installation, les versions 1.4.3 et 1.4.4 sont également disponibles si dans votre package.json il est utilisé comme ~1.4.2 alors npm install dans votre projet après la mise à jour installera 1.4.4 dans votre projet. Mais si une version 1.5.0 est disponible pour ce paquet, elle ne sera pas installée par ~. C'est ce qu'on appelle une version mineure.
Caret ^ correspond à la version majeure, si le paquet 1.4.2 est installé dans votre projet et qu'après votre installation la version 1.5.0 est publiée, ^ installera la version majeure. Il ne permettra pas d'installer la version 2.1.0 si vous avez ^1.4.2 .
Version corrigée si vous ne voulez pas changer la version du paquet à chaque installation, utilisez la version fixe sans caractère spécial, par exemple "1.4.2"
Dernière version * Si vous voulez installer la dernière version, utilisez uniquement * devant le nom du paquet.
60 votes
Pour info, vous pouvez empêcher les préfixes ou en utiliser un personnalisé en faisant :
npm config set save-prefix=''
. (Bâton~
entre guillemets si c'est ce que vous préférez). Je fais personnellement cela et j'emballe sous film rétractable les choses en production.25 votes
Tous les détails minutieux sur le fonctionnement et les différences entre le tilde et le caret : github.com/npm/node-semver#tilde-ranges-123-12-1
13 votes
Cet outil est une aide précieuse pour tester semver.npmjs.com
1 votes
Version sémantique dans npm et node
1 votes
Docs pour
npm shrinkwrap
et package-lock.json vs npm-shrinkwrap.json #toSaveYouAGoogle (or two) -- fncomp mentions au-dessus de et tehfoo en dessous de . Aussi, mneumonique :~
reste à peu près égale,^
monte un peu plus haut.