Calculadora SemVer

Digite uma versão para ver as suas partes, como ela se ordena em relação a outra, o próximo incremento e se ela atende a um intervalo npm. A página segue as regras do SemVer 2.0.0 e a sintaxe de intervalos do node-semver.

Gratuita Funciona no seu navegador Verificada em terça-feira, 10 de novembro de 2026

Uma versão como 1.4.0, com a parte opcional -pre-release e a parte opcional +build.

Outra versão para ordenar em relação à primeira. Deixe em branco para não comparar.

A parte a subir em um. As partes abaixo dela voltam a 0.

Um intervalo npm como ^1.3.0, ~1.2 ou >=1.2.0 <2.0.0. Deixe em branco para não verificar.

Resultado

Versão após o incremento — A versão depois do incremento escolhido.
Ordem — Qual das duas versões vem primeiro pela precedência do SemVer.
Verificação do intervalo — Se a versão atende ao intervalo.
Partes da versão

Como o intervalo se lê

Esta ferramenta funciona no seu navegador. O que você digita não é enviado para nós.

Como usar

  1. Digite uma Versão, como 1.4.0, e, se quiser, uma versão em Comparar com para ordená-la em relação a ela.
  2. Escolha um Incremento para ver a próxima versão. Para um Pré-lançamento, dê o nome dele em Nome do pré-lançamento.
  3. Digite um Intervalo para verificar se a versão o atende, e leia Como o intervalo se lê para ver o que cada parte dele significa.
  4. Leia Versão após o incremento, Ordem e Verificação do intervalo para a resposta de que você precisa.

Como as versões são ordenadas

O SemVer 2.0.0 compara os números maior, menor e de correção como números. Uma versão com etiqueta de pré-lançamento vem antes da mesma versão sem ela. Os identificadores de pré-lançamento são comparados um a um: números como números, texto em ordem ASCII, e um número antes de um texto. Os metadados de build, a parte depois de +, não contam.

  • A ordem dos exemplos da especificação: 1.0.0-alpha, 1.0.0-alpha.1, 1.0.0-alpha.beta, 1.0.0-beta, 1.0.0-beta.2, 1.0.0-beta.11, 1.0.0-rc.1, 1.0.0.
  • Um v no início, como em v1.4.0, é aceito e não faz parte da versão.

Como funciona um incremento

Um incremento maior sobe o primeiro número e põe os outros dois em 0. Um incremento menor ou de correção faz o mesmo com a sua parte. Uma versão que ainda é pré-lançamento perde a etiqueta quando o incremento subiria a versão final de qualquer forma: 1.0.0-alpha vira 1.0.0 com um incremento maior, como faz o node-semver. Um incremento de pré-lançamento começa a próxima correção com o nome que você der, como 1.4.1-beta.0, ou conta para cima o último número de um pré-lançamento existente, como de beta.1 para beta.2.

Como os intervalos são lidos

A sintaxe de intervalos segue o node-semver, o pacote que o npm usa, e a gramática do README. Cada forma representa comparadores: ^1.3.0 significa >=1.3.0 <2.0.0-0, ~1.2.3 significa >=1.2.3 <1.3.0-0, e 1.2.x significa >=1.2.0 <1.3.0-0. Os comparadores de um mesmo conjunto precisam valer todos. Conjuntos unidos por || são alternativas, e um conjunto vazio aceita qualquer versão, como faz *.

Pré-lançamentos e intervalos

Uma versão de pré-lançamento, como 1.5.0-beta.1, só atende a um intervalo quando um dos comparadores do seu conjunto tem o mesmo 1.5.0 com uma etiqueta de pré-lançamento. Versões inacabadas ficam, portanto, fora dos intervalos por padrão, como explica o README do node-semver. A verificação desta página segue essa regra.

Exemplo resolvido: 1.4.0 com incremento menor e ^1.3.0 || 2.x

A versão 1.4.0 é maior que 1.4.0-beta.2, porque uma versão final é maior que o seu pré-lançamento. Um incremento menor dá 1.5.0. O intervalo ^1.3.0 || 2.x se lê como >=1.3.0 <2.0.0-0 ou >=2.0.0 <3.0.0-0, e 1.4.0 atende ao primeiro conjunto.

Entrada Resultado
1.4.0 comparada com 1.4.0-beta.2 1.4.0 é maior que 1.4.0-beta.2.
Incremento menor de 1.4.0 1.5.0
1.4.0 em ^1.3.0 || 2.x 1.4.0 atende a ^1.3.0 || 2.x.

Perguntas frequentes

1.0.0+build.1 é a mesma versão que 1.0.0?

Para ordenar e para intervalos, sim. Os metadados de build depois de + não contam na precedência do SemVer, então as duas versões ocupam o mesmo lugar em uma ordem. A página mesmo assim mostra o texto de build, para que você o veja.

Por que 1.4.0-beta.2 é menor que 1.4.0?

Um pré-lançamento é instável e pode não cumprir a compatibilidade que o seu número promete, então o SemVer o coloca antes da versão final com os mesmos números. Assim, 1.4.0-beta.2 vem antes de 1.4.0, e 1.4.0 vem antes de 1.4.1.

O intervalo ^1.3.0 aceita a 2.0.0?

Não. Um intervalo com circunflexo mantém o primeiro número diferente de zero, então ^1.3.0 significa pelo menos 1.3.0 e abaixo de 2.0.0. Escreva também || 2.x se a segunda versão maior deve ser aceita, como no exemplo.

Qual é a diferença entre ~1.2 e ^1.2?

O intervalo com til ~1.2 significa >=1.2.0 <1.3.0-0, então aceita mudanças de correção, como 1.2.9, e recusa 1.3.0. O intervalo com circunflexo ^1.2 significa >=1.2.0 <2.0.0-0, então aceita também 1.3.0 e 1.9.9, mas não 2.0.0.

Por que um intervalo recusa 1.5.0-beta.1?

Pré-lançamentos ficam de fora, a não ser que um comparador cite a mesma versão com uma etiqueta de pré-lançamento, como >=1.5.0-beta.0. O node-semver faz essa escolha porque pré-lançamentos mudam depressa e podem quebrar coisas.

Minhas versões são enviadas para algum servidor?

Não. A versão, o intervalo e a comparação são lidos e verificados no seu navegador, e nada do que você digita é guardado.

Fontes

Números e texto verificados pela última vez em terça-feira, 10 de novembro de 2026.

Usamos cookies necessários para o site funcionar. Com o seu consentimento, o Google também usa cookies de publicidade para mostrar anúncios personalizados. Se você recusá-los, continuará vendo anúncios, mas eles não serão personalizados.