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.

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

Atualizando todos os pacotes

npm update

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"

Este comando atualiza um módulo específico.

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

npm install package_name@latest

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

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

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

13