Um problema que pode se tornar muito comum é conflitos de versionamento do Lerna. Vamos a um exemplo:
Você tem uma lib (biblioteca) onde duas pessoas desenvolvedoras fazem a manutenção do mesmo, porém numa última atualização aconteceu de um dev sem querer rodar o lerna publish
direto de uma branch local e não na main
(branch principal) como é mais comum. Acontece é que um tempo depois você também precisa atualizar o pacote e quando tenta na branch principal (que seria o correto), dá um erro informando que a versão a ser atualizada é bem diferente da atual. Mas por que isso acontece? Porque a última branch que foi feita a atualização lançou uma versão X enquanto a outra está com uma versão totalmente defasada (quando atualizamos o pacote com o lerna o mesmo atualiza os package.json
e o lerna.json
. A "solução" seria fazer um novo merge com as infos do pacote atualizadas para a última versão, porém muitas das vezes acontece da branch ser deletada minutos depois que é feito o merge na branch principal (eu particularmente não gosto de fazer dessa forma).
A vantagem é que o Lerna possui uma opção chamada "Custom Version", ou seja, você mesmo pode atribuir a versão que quer para o seu pacote (use com sabedoria). Uma forma mais rápida e segura de resolver os problemas de versionamento que podem ocorrer.
Quando você rodar o lerna publish
no terminal irá aparecer essas seguintes opções:
Basta selecionar o "Custom Version" e e aí é só digitar a tag a versão que você quer. Depois disso é seguir o restante do procedimento padrão de publicação de pacotes do Lerna :)
Para finalizar, uma observação: claro que o cenário ideal seria a automação do publish através do CI e afins, mas existe também um outro cenário da atualização dos pacotes de forma manual. Então a solução seria para esses casos, beleza?
Então é isso. Até a próxima!
Top comments (0)