Ferramentas Semver (Parser, Comparador, Bump)
Desenvolvimento
Trabalhar com npm, Cargo, módulos Go ou qualquer ecossistema de pacotes significa olhar pra strings de versão semântica — e errar (tratar 1.10.0 como menor que 1.9.0, perder uma tag prerelease) é o tipo de erro que custa horas. Esta ferramenta faz parse de duas versões nos componentes (major, minor, patch, prerelease, build), compara conforme a especificação oficial de semver.org incluindo ordenação correta de prerelease, e oferece botões de bump de um clique. Abaixo, o expansor de range converte a sintaxe npm mais comum (^1.2.3, ~1.2.3, ~1.2, ^0.x.y pra APIs instáveis) nos limites explícitos ≥inferior <superior — útil quando uma ferramenta só aceita esse formato.
Comparação
B é maior que A
Coincide com
≥ 1.2.3·< 2.0.0Como usar
- Digite uma versão em cada entrada (Versão A e B); os componentes e a comparação atualizam ao vivo.
- Clique num botão de bump (Major / Menor / Patch / Prerelease) sob cada versão pra avançá-la — útil pra planejar um release.
- No expansor de range, digite um range como ^1.2.3 ou ~1.2 — os limites aparecem; use Copiar pra pegar a string ≥a.b.c <x.y.z.
Perguntas frequentes
- Como funciona a ordem de prerelease?
- Por spec, uma versão com prerelease (1.0.0-alpha) é menor que a mesma sem (1.0.0). Dentro dos prereleases, identificadores são comparados da esquerda pra direita: numéricos numericamente, alfanuméricos lexicalmente, e numéricos sempre rankeiam abaixo dos alfanuméricos na mesma posição. Assim 1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta < 1.0.0.
- Por que ^0.2.3 expande pra <0.3.0, não <1.0.0?
- O caret no npm é tratado especialmente pra 0.x.y porque APIs pré-1.0 são instáveis: um bump em 0.x é tratado como breaking. Então ^0.2.3 só dá match em 0.2.x, e ^0.0.3 só dá match em 0.0.3 exatamente. É o mesmo comportamento do npm.
- Metadata de build afeta comparações?
- Não — por spec, +build é apenas informativo e ignorado ao comparar versões. 1.0.0+abc e 1.0.0+xyz são iguais.
- Qual sintaxe de range é suportada aqui?
- O expansor lida com ^x[.y[.z]], ~x[.y[.z]] e x ou x.y sozinhos (que se comportam como ~x e ~x.y respectivamente). Ranges combinados como '>=1.0.0 <2.0.0' ou wildcards como '1.x' não são expandidos — você ainda pode fazer parse de cada versão separadamente.
Ferramentas relacionadas
Decodificador JWT
Decodifique um JSON Web Token para inspecionar cabeçalho, claims e expiração.
Gerador de UUID
Gere UUIDs v4 aleatórios em lote, com cópia.
Gerador de Hash (SHA)
Gere hashes SHA-1, SHA-256, SHA-384 e SHA-512 a partir de texto.
Codificador / Decodificador de URL
Codifique texto para URLs em porcentagem, ou decodifique URLs em texto.
Codificador / Decodificador Base64
Codifique texto em Base64 ou decodifique Base64 de volta em texto.
Formatador e Validador de JSON
Formate, embeleze, minifique e valide JSON no seu navegador.