Recentemente, comecei a desenvolver um projeto no Node.js. É claro que, no momento, os pacotes que estou usando estão bastante atualizados, pois estou começando de novo e usando a versão mais recente, mas há uma taxa de rotatividade de versão bastante alta para a maioria dos pacotes Node.js. preterido ou descartado e, é claro, as vulnerabilidades de segurança serão corrigidas.
Como a maioria dos meus pacotes é especificada usando a sintaxe de versão semântica ^1.2.3
(atenha-se ao número da versão principal fornecida para evitar alterações), quaisquer atualizações importantes além da versão principal atual serão perdidas.
Qual é uma maneira prudente de garantir que você esteja razoavelmente atualizado com suas dependências? É necessário colocar, por exemplo, uma verificação semanal de atualizações em suas dependências no seu fluxo de trabalho para garantir que você não fique para trás? E por esse motivo, seria uma boa idéia tentar minimizar as dependências para minimizar a dor de lidar com as alterações posteriores quando você necessariamente atualiza para versões principais mais recentes?
npm outdated
comando? Nunca usei a mim mesmo, mas eles parecem um começo.Respostas:
Esse é o fluxo de trabalho que atualmente uso para um projeto com lançamentos mensais.
O objetivo não é ter atualizações automáticas. Eles podem quebrar seu sistema de uma maneira que você não espera e muito provavelmente quando estava fazendo outras alterações, o que não ajudará a descobrir qual é o problema.
A atualização de dependências deve ser um processo consciente e, se alguma delas quebrar seu sistema, você deve estar ciente de qual delas.
Atualizações menores que passam despercebidas provavelmente serão detectadas em seu sprint de desenvolvimento ou teste, e é por isso que você faz isso após o lançamento, porque deseja tanto tempo para detectá-lo e reagir a esse problema antes de entrar no ar.
Observe que eu realmente uso esse processo em um projeto de dependências do .NET + Nuget, mas ele se aplica a Node e npm / bower, Rails + bundle etc.
Finalmente, você pode fazer uso de comandos legais que ajudarão você a congelar / descongelar dependências, até mesmo adicionando-os ao seu repositório. Veja
npm shrinkwrap
.fonte
Eu uso outra solução com uma abordagem diferente https://uptodatenpm.com. Ele envia um boletim semanal com informações de novas versões das dependências do seu projeto, para que você possa decidir quais departamentos atualizar.
fonte