Outils

Vérificateur de plages semver

Voyez quelles versions une plage comme ^1.2.0 ou ~2.3 accepte — avec node-semver, la bibliothèque de npm, préversions comprises.

S’exécute dans le navigateurConvertisseurs de code5,5 k
Gratuit

Entrée

0 B

Résultat

Le résultat apparaîtra ici.

Savoir si ^1.2.0 accepte 1.10.0-beta.1, ou ce que permet ^0.2.3, est facile à mal deviner et fastidieux à tester. Collez une liste de versions et une plage, et cet outil marque chaque version comme acceptée ou rejetée à l’aide de node-semver, la bibliothèque avec laquelle npm lui-même résout les dépendances. Il trie aussi correctement les versions — 1.10.0 après 1.2.0, les préversions avant leur version finale —, affiche la plage entièrement développée et indique la version la plus haute et la plus basse qui la satisfont.

Comment ça marche

  • Les versions peuvent être séparées par des virgules, des espaces ou des retours à la ligne ; tout ce qui n’est pas une version valide, comme latest, est listé à part au lieu d’être ignoré en silence.
  • La plage est affichée sous sa forme développée — ^1.2.0 équivaut à >=1.2.0 <2.0.0-0 —, c’est-à-dire ce à quoi node-semver compare réellement.
  • Les préversions sont exclues sauf si vous les autorisez, comme dans npm : par défaut, ^1.2.0 n’accepte pas 1.10.0-beta.1.
  • Le patch, la mineure, la majeure et la préversion rc suivants de la version la plus haute sont calculés, et avec exactement deux versions, la différence entre elles (major, minor, patch…) est affichée.

Où vont vos données

Nulle part. Cet outil s’exécute entièrement dans votre navigateur : le texte collé est traité par la page, jamais transmis à un serveur ni consigné dans un journal.

Cet outil est gratuit et ne demande aucun compte. Ses résultats n’existent que dans la page ouverte et ne sont enregistrés nulle part.

Ce que ça coûte

Cet outil est gratuit, sans connexion ni points.

Questions fréquentes

Quelle différence entre ^ et ~ ?
^ autorise tout ce qui ne change pas le premier nombre non nul en partant de la gauche : ^1.2.3 accepte jusqu’à 2.0.0 exclu. ~ n’autorise que les mises à jour de patch lorsqu’une version mineure est indiquée : ~1.2.3 accepte jusqu’à 1.3.0 exclu. npm écrit ^ dans package.json par défaut.
Pourquoi ^0.2.3 n’accepte-t-il pas 0.3.0 ?
Parce que pour les versions 0.x, c’est le numéro mineur qui est considéré comme cassant : avant 1.0.0, le versionnage sémantique ne promet aucune stabilité, donc ^0.2.3 signifie >=0.2.3 <0.3.0. De même, ^0.0.3 n’accepte que 0.0.3 lui-même.
Pourquoi 1.10.0-beta.1 est-il rejeté par ^1.2.0 ?
npm exclut les préversions des plages, sauf si la plage elle-même désigne une préversion du même major.minor.patch. Cela évite d’installer une bêta par accident. Activez « Inclure les préversions » pour voir ce que la plage accepterait si elles étaient autorisées, ce qui correspond au comportement de npm avec --include-prerelease.
À quoi sert le mode loose ?
Il accepte des versions approximatives que le semver strict rejette, comme =1.2.3beta, et montre comment elles ont été lues — 1.2.3-beta dans ce cas. D’anciens paquets et certains tags utilisent de telles versions ; le mode strict correspond à ce que la spécification autorise.

L’open source derrière

Cet outil fonctionne grâce à npm/node-semver, publié sous licence ISC. Si vous avez besoin du même comportement dans votre propre programme, c’est cette bibliothèque qu’il faut utiliser.

npm/node-semver

Aussi appelé

  • vérificateur semver
  • calculateur plage semver
  • plage de versions npm
  • différence caret tilde npm
  • semver satisfies
  • versionnage sémantique