Semver
<major>.<minor>.<patch>-beta.<beta> == 1.2.3-beta.2
- Utilisez npm semver calculateur pour les tests. Bien que les explications pour ^ (inclure tout ce qui est supérieur à une version particulière dans la même plage majeure) et ~ (inclure tout ce qui est supérieur à une version particulière dans la même plage mineure) ne soient pas correctes à 100%, la calculatrice semble fonctionner correctement.
- Vous pouvez également utiliser Vérification de SemVer qui ne vous oblige pas à choisir un forfait et vous offre également des explications.
Autoriser ou refuser les modifications
- Version avec broche :
1.2.3
.
- Utilisez
^
(comme la tête). Permet les mises à jour au deuxième niveau non nul en partant de la gauche : ^0.2.3
signifie 0.2.3 <= v < 0.3
.
- Utilisez
~
(comme la queue). Gèle généralement le niveau le plus à droite ou met zéro si omis :
-
~1
signifie 1.0.0 <= v < 2.0.0
-
~1.2
signifie 1.2.0 <= v < 1.3.0
.
-
~1.2.4
signifie 1.2.4 <= v < 1.3.0
.
- Omettre le niveau le plus à droite :
0.2
signifie 0.2 <= v < 1
. Diffère de ~
parce que :
- La version de départ du niveau omis est toujours
0
- Vous pouvez définir la version majeure de départ sans spécifier de sous-niveaux.
Toutes les possibilités (espérons-le)
Définir le niveau majeur de départ et autoriser les mises à jour vers le haut
* or "(empty string) any version
1 v >= 1
Geler le niveau majeur
~0 (0) 0.0 <= v < 1
0.2 0.2 <= v < 1 // Can't do that with ^ or ~
~1 (1, ^1) 1 <= v < 2
^1.2 1.2 <= v < 2
^1.2.3 1.2.3 <= v < 2
^1.2.3-beta.4 1.2.3-beta.4 <= v < 2
Geler le niveau mineur
^0.0 (0.0) 0 <= v < 0.1
~0.2 0.2 <= v < 0.3
~1.2 1.2 <= v < 1.3
~0.2.3 (^0.2.3) 0.2.3 <= v < 0.3
~1.2.3 1.2.3 <= v < 1.3
Geler le niveau du patch
~1.2.3-beta.4 1.2.3-beta.4 <= v < 1.2.4 (only beta or pr allowed)
^0.0.3-beta 0.0.3-beta.0 <= v < 0.0.4 or 0.0.3-pr.0 <= v < 0.0.4 (only beta or pr allowed)
^0.0.3-beta.4 0.0.3-beta.4 <= v < 0.0.4 or 0.0.3-pr.4 <= v < 0.0.4 (only beta or pr allowed)
Refuser les mises à jour
1.2.3 1.2.3
^0.0.3 (0.0.3) 0.0.3
Avis : Manquant majeur, mineur, patch ou spécifiant beta
sans numéro, est la même chose que any
pour le niveau manquant.
Avis : Lorsque vous installez un paquet qui a 0
comme niveau majeur, la mise à jour n'installera que la nouvelle version de niveau bêta/pr ! C'est parce que npm
fixe ^
par défaut dans package.json
et quand la version installée est comme 0.1.3
il gèle tous les niveaux majeurs/mineurs/patchs.
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.