Analyseur de versions et plages SemVer

Saisissez une version complète et une plage pour voir si elles correspondent. La plage peut être exacte (1.2.3), comparative (>=1.2.3), ouverte (1.x), avec tiret (1.2.3 - 2.0.0) ou alternative (^1.2.3 || ~2.0.0).

Fonctionne localement dans votre navigateur
Tout dans cet outil est traité dans ce navigateur. KivTools ne télécharge pas, ne stocke pas et n’appelle aucune API tierce avec votre entrée.
Version et plagePrend en charge les versions exactes, les comparateurs, les plages caret et tilde, ainsi que les alternatives ||.

Lire une version et tester une plage

Saisissez une version et une plage puis cliquez sur « Inspecter la version » : 2.4.1-beta.2+build.19 est décomposée en majeure, mineure, correctif, pré-version et métadonnées de build, et la plage est testée contre elle. Tout s’exécute dans ce navigateur : aucun registre n’est interrogé et aucun paquet n’est installé.

Le verdict suit le semver de npm, l’implémentation qu’utilisent tous les gestionnaires de paquets : les plages avec lesquelles npm installerait une version sont celles qui correspondent ici, y compris la règle qui exclut les pré-versions des plages qui n’en nomment aucune. Une plage que la page ne sait pas lire est refusée avec un exemple au lieu d’être devinée.

  1. Saisissez une version complète en trois parties, par exemple 2.4.1, 1.0.0-rc.1 ou 2.4.1-beta.2+build.19. Une version avec une partie manquante, un zéro initial ou un nombre supérieur à 9007199254740991 est refusée, comme npm la refuse.
  2. Écrivez la plage dans le second champ : une version exacte, un comparateur (>, >=, <, <=, =), un caret, un tilde (aussi écrit ~>), une plage ouverte comme 1.x ou 1.2.x, une plage avec tiret comme 1.2.3 - 2.0.0, ou une combinaison séparée par des espaces ou par ||.
  3. Laissez la plage vide pour lire le rapport de version seul, ou cliquez sur « Charger un exemple » pour tester la pré-version 2.4.1-beta.2+build.19 contre ^2.4.0 || ~3.1.0.
  4. Lisez la ligne de la plage et la note en dessous : quand une pré-version échoue uniquement parce que la plage ne nomme aucune pré-version sur les mêmes majeur.mineur.correctif, la page l’explique au lieu de répondre seulement « ne correspond pas ».
  5. Copiez ou téléchargez le rapport, et cliquez sur « Effacer » pour vider les deux champs.

La grammaire des plages, la règle npm des pré-versions et les limites de cette page

Ce que couvre la grammaire des plages

1.2.3 et v1.2.3 nomment une seule version ; >, >=, <, <= et = se comparent à elle, et un espace après l’opérateur est accepté (>= 1.2.3). Deux comparateurs dans un même champ doivent être vrais ensemble (>=1.2.3 <2.0.0), alors que || est satisfait par l’un ou l’autre côté. ^1.2.3 accepte de 1.2.3 à 2.0.0, ~1.2.3 accepte de 1.2.3 à 1.3.0, et une partie ouverte est un intervalle : 1.2 signifie de 1.2.0 à 1.3.0, 1.x de 1.0.0 à 2.0.0, et * accepte toute version sans pré-version.

Pré-versions et métadonnées de build

Une pré-version ne correspond que si la plage nomme une pré-version sur les mêmes majeur.mineur.correctif : ^2.4.0 ne correspond pas à 2.4.1-beta.2, ^2.4.0-beta.1 correspond à 2.4.0-beta.2, et * ne correspond pas du tout à 1.2.3-beta. Les métadonnées de build sont ignorées dans la comparaison : 2.4.1+build.19 correspond donc à 2.4.1, et un identifiant de pré-version ne peut pas commencer par un zéro (1.2.3-01 est invalide) : les règles appliquées sont celles de npm.

Ce que cette page ne fait pas

Aucun registre n’est interrogé : la page ne peut pas dire quelles versions un paquet a publiées, si une version existe ou ce que npm installerait. Une dist-tag comme latest n’est pas une plage, et la page le dit au lieu de deviner. Le verdict porte sur la version que vous saisissez : rien n’est téléchargé, mis en cache ni envoyé.

Outils récents :