Teste versões contra um intervalo do npm como ^1.2.3, ordene-as e veja a próxima versão
Funciona no seu navegador. Nada do que você digita é enviado a lugar nenhum. Verificado em 16 de outubro de 2026.Um intervalo semver lista as versões que um pacote aceita. No npm, ^1.2.3 significa pelo menos 1.2.3 e abaixo de 2.0.0, enquanto ~1.2.3 para abaixo de 1.3.0. Abaixo da versão 1, o circunflexo é mais restrito, então ^0.2.3 para abaixo de 0.3.0. Uma pré-versão como 1.3.0-beta só corresponde a um intervalo que cite uma pré-versão de 1.3.0.
Esta página foi traduzida automaticamente do original em inglês. Nenhuma pessoa revisou ainda a tradução; a versão em inglês é a que deve ser considerada. Ler o original em inglês
Digite o intervalo do package.json, como ^1.2.3 ou >=18 <21, no campo Intervalo.
Cole as versões a testar, uma por linha, ou clique em Testar um exemplo.
Leia a lista: cada versão aparece marcada como correspondente ou não, ordenada da menor para a maior, com a maior correspondência indicada.
Clique em Copiar para levar a lista ordenada, ou em Copiar correspondentes para apenas as versões dentro do intervalo.
O Semantic Versioning escreve uma versão como MAJOR.MINOR.PATCH: uma mudança major pode quebrar o código que a usa, uma minor adiciona recursos e um patch só corrige bugs. Os gerenciadores de pacotes confiam nessa promessa quando leem um intervalo como ^1.2.3 no package.json e escolhem a versão mais nova que se encaixa.
Digite um intervalo e cole versões, uma por linha. Cada versão é marcada como dentro ou fora do intervalo, a lista é ordenada na verdadeira ordem de versões e as correspondências mais alta e mais baixa são indicadas. O intervalo também é escrito como comparadores simples, exatamente como o npm o exibe, então ^0.2.3 aparece como >=0.2.3 <0.3.0-0.
| Intervalo | Significa | Exemplo correspondente |
|---|---|---|
^1.2.3 |
>=1.2.3 <2.0.0 | 1.9.4 |
^0.2.3 |
>=0.2.3 <0.3.0 | 0.2.9 |
~1.2.3 |
>=1.2.3 <1.3.0 | 1.2.10 |
1.x |
>=1.0.0 <2.0.0 | 1.4.0 |
1.2.3 - 2.3 |
>=1.2.3 <2.4.0 | 2.3.9 |
>=18 <21 |
de 18.0.0 até abaixo de 21.0.0 | 20.11.1 |
Ordenação. Os números são comparados como números, então 1.10.0 é mais nova que 1.9.0. Uma pré-versão fica abaixo da sua versão final: 2.0.0-rc.1 vem antes de 2.0.0. Dentro de uma pré-versão, as partes numéricas são comparadas numericamente e ficam antes das palavras, então beta.2 fica abaixo de beta.11 e 1 abaixo de alpha. Os metadados de build depois de um sinal de mais nunca mudam a ordem.
Erros explicados. Uma linha que não é uma versão diz o motivo: falta a 1.2 o número de patch, 01.2.3 tem um zero à esquerda e 1.2.3.4 tem uma parte a mais. Quando a correção é óbvia, ela é sugerida.
Próximas versões. Para a versão mais alta da lista, são mostradas a próxima major, minor, patch e pré-versão, como o npm version as escreveria.
Cada resposta é conferida com o node-semver, a biblioteca que o próprio npm usa, em mais de 3.000 comparações e 100 intervalos. Tudo roda no seu navegador; nada do que você cola é enviado a lugar nenhum.
Um til permite apenas atualizações de patch: ~1.2.3 aceita 1.2.4 e 1.2.10, mas não 1.3.0. Um circunflexo também permite atualizações minor: ^1.2.3 aceita tudo abaixo de 2.0.0. Como o npm escreve um circunflexo por padrão, a maioria dos projetos recebe recursos novos automaticamente e só para na próxima versão major.
Abaixo de 1.0.0, o npm trata o primeiro número diferente de zero como a versão major, porque a API ainda não é estável. Assim, ^0.2.3 significa pelo menos 0.2.3 e abaixo de 0.3.0, e ^0.0.3 permite apenas a própria 0.0.3. Levar um pacote para 1.0.0 é o que ativa o intervalo mais amplo do circunflexo.
Sim. Cada parte de uma versão semântica é comparada como número inteiro, então uma versão minor 10 é maior que 9. Ordenar números de versão como texto, ou lê-los como decimais, coloca 1.10.0 antes de 1.9.0, o que está errado. Cole as duas aqui para ver a ordem correta e qual parte difere.
Não. Uma pré-versão só corresponde a um intervalo que cite uma pré-versão com os mesmos números major, minor e patch. Assim, 1.3.0-beta corresponde a >=1.3.0-alpha, mas não a ^1.2.3, mesmo ficando dentro desse intervalo na ordenação. As pré-versões ficam fora das instalações normais, a menos que você as peça.
Uma pré-versão vem antes da sua versão final, então 1.0.0-rc.1 é mais antiga que 1.0.0. As partes de uma pré-versão são comparadas uma de cada vez, separadas por pontos: números numericamente, palavras em ordem alfabética, e números antes de palavras. A ordem de exemplo do Semantic Versioning é alpha, alpha.1, alpha.beta, beta, beta.2, beta.11, rc.1 e depois a versão final.
Tudo depois de um sinal de mais são metadados de build, como 1.0.0+20261016 ou 1.0.0+sha.5114f85. Os metadados de build identificam um build específico, mas são ignorados na ordenação, então 1.0.0+a e 1.0.0+b contam como a mesma versão. Os intervalos também os ignoram, e o npm os remove ao exibir um intervalo.
Taxas e regras mudam; confira a fonte antes de confiar em um valor.
Ainda com dúvidas? Pergunte sobre Verificador de semver e qualquer pessoa que saiba pode responder. Não é preciso ter conta.