Ferramentas Semver (Parser, Comparador, Bump)
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
Comparador de preço por unidade
Compare produtos de mercado pelo preço por unidade (grama, mL ou peça). Grupos de massa, volume e contagem com unidades métricas e imperiais.
Comparar listas — interseção, união e diferença
Compare duas listas linha a linha: itens em comum, exclusivos de cada uma, união ou diferença simétrica, no seu navegador.
Inspetor de UUID (versão, variante, tempo)
Cole qualquer UUID para ver sua versão (1–8), variante e — nos baseados em tempo v1, v6 e v7 — a marca de tempo de criação embutida, a sequência de relógio e o nó/MAC, tudo decodificado no seu navegador.
Gerador de mensagens Conventional Commits
Crie uma mensagem Conventional Commits com tipo, escopo, mudança incompatível e rodapés, no seu navegador.
Construtor de JSON Patch (RFC 6902)
Gere um JSON Patch RFC 6902 de um par source/target, ou aplique um patch existente a um documento. Suporta ops add, remove, replace, move, copy, test.
Visualizador de Diferenças de JSON
Compare dois documentos JSON estruturalmente — veja exatamente quais chaves foram adicionadas, removidas ou alteradas.