Recientemente comencé a desarrollar un proyecto en Node.js. Por supuesto, en este momento los paquetes que estoy usando están bastante actualizados ya que estoy comenzando de nuevo y usando la última versión, pero hay una tasa de rotación de versiones bastante alta para la mayoría de los paquetes de Node.js y, a menudo, ciertas características serán en desuso o descartado, y por supuesto las vulnerabilidades de seguridad serán reparadas.
Como la mayoría de mis paquetes se especifican utilizando la sintaxis de versiones semánticas ^1.2.3
(se adhieren al número de versión principal dado para evitar cambios importantes), se perderán todas las actualizaciones importantes más allá de la versión principal actual.
¿Cuál es una forma prudente de garantizar que se mantenga razonablemente actualizado con sus dependencias? ¿Es necesario poner, por ejemplo, una verificación semanal de actualizaciones de sus dependencias en su flujo de trabajo para asegurarse de no quedarse atrás? Y por esta razón, ¿sería una buena idea tratar de minimizar las dependencias para minimizar el dolor de lidiar con cambios importantes cuando necesariamente actualiza a las versiones principales más nuevas?
npm outdated
comando? Nunca lo usé yo mismo, pero parecen un comienzo.Respuestas:
Este es el flujo de trabajo que utilizo actualmente para un proyecto con lanzamientos mensuales.
El objetivo no es tener actualizaciones automáticas en absoluto. Es posible que rompan su sistema de una manera inesperada y muy probable cuando realiza otros cambios, lo que no ayudará a determinar cuál es el problema.
La actualización de las dependencias debe ser un proceso consciente, y si alguna de ellas interrumpe su sistema, debe saber cuál.
Las actualizaciones menores que se rompen y pasan desapercibidas probablemente se recogerán en su sprint de desarrollo o prueba, y es por eso que lo hace después del lanzamiento, porque desea tanto tiempo para detectarlo y reaccionar a ese problema antes de lanzarlo.
Tenga en cuenta que en realidad uso este proceso en un proyecto de dependencias .NET + Nuget, pero se aplica más o menos a Node y npm / bower, Rails + bundle, etc.
Finalmente, puede utilizar comandos agradables que lo ayudarán a congelar / descongelar dependencias, incluso agregándolos a su repositorio. Ver
npm shrinkwrap
.fuente
Utilizo otra solución con un enfoque diferente https://uptodatenpm.com, le envía un boletín semanal con información de las nuevas versiones de las dependencias de su proyecto para que pueda decidir qué departamentos actualizar.
fuente