Las dependencias son la piedra angular del desarrollo web moderno. Hablamos de herramientas, plugins, librerías y frameworks necesarios para desarrollar aplicaciones web de alto nivel.
El número de dependencias se ha disparado en los últimos años. Con el tiempo los desarrolladores han adoptado herramientas de gestión de dependencias que alivian el estrés de mantener todas las dependencias organizadas y, sobre todo, actualizadas. Dichas herramientas nos proporcionan un flujo de trabajo optimizado para todos los desarrolladores y gestores de proyectos.
He catalogado los mejores gestores de dependencia en este artículo, incluyendo dos plataformas bien posicionadas y de reciente aparición. Ya sabéis que el desarrollo web profesional requiere de un aprendizaje continuo y, es por eso que, los gestores de dependencias son un aspecto que vale la pena aprender.
NPM
No podía escribir este artículo sin mencionar a Node Package Manager. Desarrollado sobre Node.js, este sistema potencia un enorme repositorio de 100.000 paquetes y módulos.
Cada proyecto puede utilizar el archivo de instalación package.json a través de NPM e incluso gestionarlo con Gulp (en Node). Las dependencias pueden ser actualizadas y optimizadas desde el terminal. Además puedes desarrollar nuevos proyectos con archivos de dependencias y números de versión insertados automáticamente desde el archivo package.json.
No subestimes a NPM, vale mucho más que para gestionar dependencias. Prácticamente es una herramienta que hay conocer si quieres estar puesto en esto del desarrollo web moderno. Si no te enteras muy bien, por favor, echa un vistazo a esta guía para principiantes en un hilo Reddit.
Bower
El gestor de paquetes Bower corre en NPM, lo cual es un poco redundante, pero es que existe una diferencia entre los dos: NPM es mucho más completo mientras que Bower apuesta por la reducción en el tamaño del archivo y los tiempos de carga para las dependencias del frontend. Echa un vistazo a esta pregunta en Stack para aprender más acerca de las sutiles diferencias.
Muchos desarrolladores argumentan que Bower está obsoleto ya que se ejecuta en NPM, un servicio que puede hacer casi todo lo que puede hacer Bower. En términos generales, esto no está del todo mal.
Sin embargo, los desarrolladores deben percatarse que Bower puede optimizar el flujo de trabajo específicamente con las dependencias del frontend. Personalmente recomiendo el artículo de Ben McCormick "Bower es útil" para aprender más sobre todo lo que nos puede ofrecer este gestor de paquetes.
RubyGems
RubyGems es un gestor de paquetes open source para Ruby, que es muy popular entre los desarrolladores web. Por resumirlo un poco para todos aquellos que sean profanos en la materia, una "gema" es sólo un código que se ejecuta en un entorno de Ruby. Esto puede dar lugar a programas como Bundler que gestiona versiones de gemas y lo mantienen todo actualizado.
A los desarrolladores de Rails les encantará esta característica, pero ¿qué pasa con los paquetes frontend? Desde que Ruby es de código abierto, los desarrolladores pueden desarrollar proyectos como Bower for Rails. Esto te proporciona un gestor de paquetes frontend en la plataforma Ruby con una pequeña curva de aprendizaje.
RequireJS
RequireJS tiene algo especial. Principalmente es un conjunto de herramientas de JS. Se puede utilizar para cargar módulos de JS de manera sencilla incluyendo módulos de Node.
RequireJS puede detectar automáticamente las dependencias necesarias en base a lo que estás utilizando, de manera muy similar a la programación de software clásico en C / C ++, donde se incluyen las librerías con otras librerías.
Encontrarás una discusión interesante en GitHub sobre el valor que ofrece a los desarrolladores web modernos. RequireJS aún funciona en entornos de producción, y si te funciona, eso es todo lo que importa.
Jam
JamJS es un gestor de paquetes que funciona en el navegador. Se trata de un gestor de paquetes de JavaScript gestión automática similar a RequireJS.
Todas sus dependencias son introducidas en un único archivo JS que te permite agregar y quitar elementos de manera sencilla. Además estos pueden ser actualizados en el navegador sin tener en cuenta otras herramientas que estés utilizando (como RequireJS).
Las librerías se actualizan en función de las versiones más recientes a través del terminal. Cada proyecto puede ser creada de forma automática con componentes optimizados en función de tus necesidades. Jam es libre en GitHub y vale la pena echarle un vistazo si tienes tiempo.
Fuente: hongkiat