DEV Community

Cover image for NPM - Atualizando dependências com segurança
Antonio Silva
Antonio Silva

Posted on

NPM - Atualizando dependências com segurança

Partes da versão?

Sim!, o controle de versão do NPM (node package manager) segue um controle de versões semânticos, portanto, esse controle de versões tem 3 partes: Major.Minor.Patch

1 - Patch . Isso é incrementado quando é feita uma correção de bug que não quebra o código de consumo.
2 - Minor . Isso é incrementado quando são adicionados recursos que não quebram o código de consumo.
3 - Major . Isso é incrementado quando mudanças significativas são feitas.
Enter fullscreen mode Exit fullscreen mode

Beleza, mas oque significa o ^ ou o ~ ?

Você quer instalar uma nova versão de um pacote e se depara com essa dupla frente as versões, oque elas significam afinal?

Uma versão geralmente tem um ^ na frente dela (por exemplo ^16.8.6). Isso significa que a versão secundária mais recente pode ser instalada com segurança. Portanto, neste exemplo, ^16.12.1 pode ser instalado com segurança se esta for a versão mais recente em 16.x.

Às vezes, uma versão tem um ~ na frente dela (por exemplo ~16.8.6). Isso significa que apenas a última versão do patch pode ser instalada com segurança. Portanto, neste exemplo, ^16.8.12 pode ser instalado com segurança se esta for a versão mais recente em 16.8.x.

NPM INSTALL, resolve?

Depende, se os pacotes ja estiverem instalados na node_modules não será atualizado.

Se não existe a node_modules mas existe o package-lock.json então será instalado apenas as versões específicas do próprio arquivo.

O npm install instalará as novas versões apenas se não existir nenhum dos dois arquivos, instalando a versão mais recente dos pacotes existentes no package.json.

Ta, mas e com segurança?

Vamos descobrir as dependências que estão desatualizadas rodando o seguinte comando:

npm outdated
Enter fullscreen mode Exit fullscreen mode

Atualizando todos os pacotes

npm update
Enter fullscreen mode Exit fullscreen mode

Este comando atualiza todos os pacotes tanto na node_modules como no package-lock.json, atualizando a árvore de dependências do projeto.

Atualizando um pacote específico

npm update "package_name"
Enter fullscreen mode Exit fullscreen mode

Este comando atualiza um módulo específico.

Atualizando dependências com grandes mudanças (Major)

npm install package_name@latest
Enter fullscreen mode Exit fullscreen mode

Verifique SEMPRE se aplicação não está quebrando por meio de testes.

Repita o processo para outros pacotes com grandes mudanças

Caminho mais rápido?

npx npm-check-updates -u
Enter fullscreen mode Exit fullscreen mode

Isso atualizará as dependências para as versões mais recentes (incluindo alterações de versão principais) no package.json arquivo. Se quisermos continuar com as atualizações, precisamos executar o seguinte comando:

npm install
Enter fullscreen mode Exit fullscreen mode

Isso fará com que os pacotes da pasta node_modules e o package-lock.json sejam atualizados.

Resumão:

1 - Use npm outdated para descobrir dependências que estão desatualizadas.
2 - Use npm update para realizar atualizações de dependências seguras.
3 - Use npm install <packagename>@latest para atualizar para a versão principal mais recente de um pacote.
4 - Use npx npm-check-updates -u e npm install para atualizar todas as dependências para suas versões principais mais recentes.

Achou esse post útil? me da um Hello no Twitter

Oldest comments (2)

Collapse
 
mayconwallas profile image
Maycon Wallas

simplesmente a melhorar dicas que eu poderia pegar esse mês, talvez ate esse ano kkkkk Obrigado por compartilhar seu conhecimento.

Collapse
 
allbertuu profile image
Alberto Albuquerque

bom demaiiisssss