Elegir y gestionar las dependencias de un proyecto Node.js no solo implica tiempo y esfuerzo, sino que también es crucial para garantizar la sostenibilidad, seguridad y eficiencia del proyecto a largo plazo. Mediante la experiencia en diversos proyectos, adquirimos preferencias por ciertos paquetes que se adaptan a nuestras necesidades. Permíteme presentarte cinco dependencias de npm que te ayudarán a simplificar el proceso de mantenimiento.

1. Ordenar el archivo package.json

Con sort-package-json puedes organizar las propiedades del archivo package.json para mejorar su legibilidad, coherencia y consistencia, lo que es especialmente útil en equipos donde varias personas contribuyen al proyecto. Un package.json bien estructurado siempre simplifica la identificación de dependencias, scripts y configuraciones, lo que se traduce en eficientar el desarrollo.

Lo puedes instalar globalmente con el siguiente comando:

npm install -g sort-package-json

Y para ejecutarlo en un proyecto:

npx sort-package-json

Comprueba aquí el manual de sort-package-json.

2. Comprobar dependencias no utilizadas

depcheck examina tu proyecto para encontrar dependencias que no se utilizan. Esto es esencial para mantener tu proyecto organizado y minimizar el exceso de código. Las dependencias en desuso tienden a aumentar el tamaño del proyecto sin necesidad, ralentizar la instalación y aumentar el riesgo de vulnerabilidades.

Eliminando estas dependencias, tu proyecto será más eficiente, seguro, fácil y agradable de gestionar.

Puedes instalar la dependencia globalemnte con el siguiente comando:

npm install -g depcheck

Y ejecutarla en tu proyecto:

npx depcheck

Aquí tienes la documentación de depcheck.

3. Actualizar las dependencias

Actualizar las dependencias es crucial para la seguridad del proyecto. La herramienta npm-check-updates simplifica este proceso al buscar las últimas versiones disponibles para tus dependencias. Te muestra un informe de las actualizaciones posibles. Esto te ofrece la posibilidad de actualizar todas las dependencias simultáneamente o elegir específicamente las que quieres actualizar.

⚠️

No es recomendable hacer actualizaciones a gran escala en producción sin antes hacer pruebas exhaustivas. Algunas dependencias son compatibles con determinada versión de un paquete, por lo que actualizarlo, podría provocar conflictos. Mi consejo es que las instales de una en una y te asegures de que no se rompe nada.

Para instalar el paquete globalmente, ejecuta el siguiente comando:

npm install -g npm-check-updates

Después, puedes obtener el informe con:

npx npm-check-updates

Y por último, para actualizar todas las dependencias simultáneamente:

ncu -u && npm install

Te dejo aquí la documentación oficial de npm-check-updates.

4. Gestionar las dependencias

npm-check surge como una opción más visual y completa que depcheck, incorporando algunas de las funcionalidades que hemos visto en npm-check-updates. Si buscas una herramienta única para identificar dependencias obsoletas o no utilizadas, y deseas un informe muy detallado con recomendaciones para tomar medidas, npm-check es ideal. No solo te indica qué dependencias no se usan en tu proyecto, sino que también te ofrece sugerencias sobre cómo investigarlo por tu cuenta, lo que resulta muy beneficioso.

Ejecuta el siguiente comando para instalarla globalmente:

npm install -g npm-check

Y el siguiente comando para ejecutara:

npm-check

Encontrarás aquí la documentación oficial de npm-check.

5. Notificar actualizaciones disponibles

update-notifier es una biblioteca que revisa la disponibilidad de actualizaciones para las dependencias de tu proyecto y te muestra una notificación en la consola al ejecutar tu aplicación. De esta manera, te mantiene informado de manera no intrusiva sobre las actualizaciones disponibles sin que tengas que comprobarlo manualmente.

Para instalarla en tu proyecto, ejecuta:

npm install --save update-notifier

Y para configurarla, deberás integrarla en el archivo principal de tu aplicación:

// app.js

const updateNotifier = require('update-notifier')
const pkg = require('./package.json')

updateNotifier({ pkg: packageJson }).notify()

Puedes leer la documentación oficial aquí.

6. Comentarios finales

Como has podido observar, la mayoría de los paquetes pueden aportar valor a tus proyectos. Algunos pueden incluso solaparse y proporcionar perspectivas distintas para resolver la misma necesidad. He evitado mostrar preferencias personales —a pesar de tenerlas— ya que prefiero que seas tú quien evalúe y decida qué paquetes se ajustan mejor a lo que necesitas. Te darás cuenta de que terminarás encariñándote con ellos.

🚀 ¡Espero que estas herramientas contribuyan a tu productividad!