DEV Community

Cover image for Atualizando pacotes NodeJs com segurança e eficiência com npm-check-updates
Salmo Mascarenhas
Salmo Mascarenhas

Posted on

Atualizando pacotes NodeJs com segurança e eficiência com npm-check-updates

Desenvolvedores costumam atualizar pacotes de aplicativos para resolver problemas de incompatibilidade ou vulnerabilidades. Em um projeto de trabalho recente, encontrei pacotes desatualizados e vulneráveis, então, considerei atualizar tudo. No entanto, descobri que algumas funções, métodos e classes eram incompatíveis com a nova versão dos pacotes (tive uma dor de cabeça maior 😂).

Felizmente, há uma ferramenta chamada npm-check-updates que pode ajudar a evitar esses problemas. Neste tutorial, vou ensinar como usar essa ferramenta para atualizar seus pacotes de forma segura e eficiente.

Versionamento do NPM 🤓

Antes de tudo, é importante entender como funciona o versionamento de pacotes no NPM. O versionamento segue uma convenção de versionamento semântico, que consiste em três números separados por pontos, como por exemplo "1.2.3". Cada número representa um tipo de atualização diferente: Major, Minor e Patch.

Exxemplo de versionamento de pacotes

A atualização Major é utilizada quando há mudanças incompatíveis com as versões anteriores do pacote. Essa atualização pode quebrar a compatibilidade com outras dependências do projeto que usam a versão anterior do pacote. Geralmente, atualizações major são feitas quando há mudanças significativas na API do pacote ou quando há uma reescrita significativa do código.

Já a atualização Minor é utilizada para adicionar novas funcionalidades ou fazer melhorias na funcionalidade existente do pacote, sem quebrar a compatibilidade com outras dependências. Geralmente, atualizações minor são feitas quando há uma nova funcionalidade a ser adicionada ou quando há melhorias na implementação existente.

Por fim, a atualização Patch é utilizada para corrigir problemas de segurança ou bugs no pacote, sem adicionar novas funcionalidades ou fazer alterações significativas no código existente. Geralmente, atualizações patch são feitas quando há problemas de segurança a serem corrigidos ou quando há bugs a serem corrigidos.

É importante levar em consideração o tipo de atualização que está sendo feita e suas possíveis consequências ao atualizar um pacote.

Instalando o pacote globalmente ou usando o npx

Para utilizar o npm check updates (irei chamar de ncu), podemos instalá-lo globalmente abrindo o terminal da sua máquina e rodando o seguinte comando:

npm i -g npm-check-updates
Instalação global do ncu

Com isso, já poderíamos utilizar o pacote. Porém, acabamos instalando uma versão específica do ncu (chamaremos assim) em nossa máquina. O problema de instalar dessa maneira é que, caso lancem uma atualização do pacote, nós teremos que atualizá-lo em nossa máquina para usar a versão mais nova e ainda ficamos com um pacote instalado que provavelmente será utilizado poucas vezes.

Por isso, vamos utilizar o npx, que é um utilitário que vem junto com o Node.js a partir da versão 5.2.0. Ele é usado para executar pacotes do Node.js sem precisar instalá-los globalmente no sistema operacional ou no projeto em si. Com o npx, você pode executar um pacote Node.js que não está instalado na sua máquina com apenas um comando no terminal:

npx npm-check-updates

Dessa forma, o ncu será executado sem precisar ser instalado globalmente em sua máquina, e você sempre terá acesso à versão mais recente do pacote.

Verificando atualizações disponíveis

Para verificar quais pacotes têm atualizações disponíveis, basta navegar até o diretório do projeto e executar o seguinte comando:

npx npm-check-updates

O comando acima exibirá uma lista de todos os pacotes instalados, com suas versões atuais e possíveis atualizações disponíveis.

Listagem de pacotes instalados

Realizando atualizações

Atualização de patch
Começaremos atualizando apenas o patch dos pacotes com o seguinte comando:

npx ncu -u -t patch

A flag -u é uma abreviação de --upgrade, indicando que queremos atualizar os pacotes. A flag -t patch indica que queremos atualizar apenas o patch dos pacotes (e não as versões principais ou secundárias).

O comando acima atualizará todos os pacotes que têm atualizações de patch disponíveis e salvará essas atualizações no arquivo package.json.

Exemplo de atualização patch

Em seguida, para instalar as novas atualizações, basta executar o seguinte comando:

npm install

É recomendado realizar um commit após cada atualização de pacotes. Caso algo dê errado fica mais fácil voltar ao estado anterior.

Atualização de minor
Em seguida, podemos atualizar o minor dos pacotes com o comando:

npx ncu -u -t minor

O comando acima atualizará todos os pacotes que têm atualizações de minor disponíveis e salvará essas atualizações no arquivo package.json.

Pacotes atualizados

Novamente, para instalar as novas atualizações, basta executar o seguinte comando:

npm install

Atualização de major
Por fim, podemos atualizar o major dos pacotes com o comando:

npx ncu -u

Atualizando pacotes específicos

Se você quiser atualizar apenas pacotes específicos, pode usar a opção --filter ou -f, por exemplo: npx ncu -u -t patch -f typeorm.

Entre em contato comigo!

Se você quiser entrar em contato comigo para discutir projetos ou colaborações, pode me encontrar nos seguintes endereços do GitHub:

Sinta-se à vontade para me enviar uma mensagem ou abrir uma issue nos meus repositórios públicos. Estou sempre interessado em conhecer novas pessoas e projetos interessantes!

Espero que essas dicas possam te ajudar em algum momento na sua vida como Dev 😊

Até uma próxima!

Referências

Repositório oficial
Exemplo em vídeo

Top comments (0)