Analisador de versões e intervalos SemVer

Informe uma versão completa e um intervalo para ver se correspondem. O intervalo pode ser exato (1.2.3), comparativo (>=1.2.3), aberto (1.x), com hífen (1.2.3 - 2.0.0) ou alternativo (^1.2.3 || ~2.0.0).

Funciona localmente no seu navegador
Esta ferramenta processa todos os dados localmente no seu navegador.
Versão e intervaloAceita versões exatas, comparadores, intervalos caret, til e alternativas ||.

Como ler uma versão e testar um intervalo

Digite uma versão e um intervalo e pressione «Inspecionar versão»: 2.4.1-beta.2+build.19 é separada em maior, menor, correção, pré-lançamento e metadados de build, e o intervalo é testado contra ela. Tudo roda neste navegador: nenhum registro é consultado e nenhum pacote é instalado.

O resultado segue o semver do npm, a implementação usada por todos os gerenciadores de pacotes: os intervalos com que o npm instalaria uma versão são os que coincidem aqui, incluindo a regra que deixa pré-lançamentos de fora de intervalos que não nomeiam nenhum. Um intervalo que a página não consegue ler é recusado com um exemplo, em vez de ser adivinhado.

  1. Informe uma versão completa de três partes, como 2.4.1, 1.0.0-rc.1 ou 2.4.1-beta.2+build.19. Versões com uma parte ausente, com zero à esquerda ou com campo numérico acima de 9007199254740991 são recusadas, do mesmo modo que o npm recusa.
  2. Escreva o intervalo no segundo campo: uma versão exata, um comparador (>, >=, <, <=, =), um caret, um til (também ~>), um intervalo aberto como 1.x ou 1.2.x, um intervalo com hífen como 1.2.3 - 2.0.0, ou uma combinação separada por espaços ou por ||.
  3. Deixe o intervalo vazio para ver apenas o relatório da versão, ou pressione «Carregar exemplo» para testar o pré-lançamento 2.4.1-beta.2+build.19 contra ^2.4.0 || ~3.1.0.
  4. Leia a linha do intervalo e a nota abaixo dela: quando um pré-lançamento falha apenas porque o intervalo não nomeia nenhum pré-lançamento no mesmo major.minor.patch, a página explica isso em vez de responder somente «não corresponde».
  5. Copie ou baixe o relatório e pressione «Limpar» para zerar os dois campos.

A gramática dos intervalos, a regra de pré-lançamento do npm e os limites desta página

O que a gramática dos intervalos cobre

1.2.3 e v1.2.3 nomeiam uma única versão; >, >=, <, <= e = comparam com ela, e um espaço depois do operador é aceito (>= 1.2.3). Dois comparadores no mesmo campo precisam valer ao mesmo tempo (>=1.2.3 <2.0.0), enquanto || é satisfeito por qualquer um dos lados. ^1.2.3 aceita de 1.2.3 até 2.0.0, ~1.2.3 aceita de 1.2.3 até 1.3.0, e uma parte aberta é um intervalo: 1.2 significa de 1.2.0 até 1.3.0, 1.x de 1.0.0 até 2.0.0, e * aceita qualquer versão sem pré-lançamento.

Pré-lançamentos e metadados de build

Uma versão de pré-lançamento só corresponde quando o intervalo nomeia um pré-lançamento no mesmo major.minor.patch: ^2.4.0 não corresponde a 2.4.1-beta.2, ^2.4.0-beta.1 corresponde a 2.4.0-beta.2 e * não corresponde a 1.2.3-beta. Os metadados de build são ignorados na comparação, então 2.4.1+build.19 corresponde a 2.4.1, e um identificador de pré-lançamento não pode começar com zero (1.2.3-01 é inválido): as regras que o npm aplica são as aplicadas aqui.

O que esta página não faz

Não consulta registro nenhum, então não pode dizer quais versões um pacote publicou, se uma versão existe ou o que o npm instalaria. Uma dist-tag como latest não é um intervalo, e a página responde isso em vez de adivinhar. O resultado cobre a versão que você digitou: nada é baixado, guardado ou enviado.

Ferramentas recentes: