NPM/Bower/Composer-diferencias?
composer-php (2)
¿Puede alguien explicarme la diferencia entre NPM
, Bower
y Composer
?
Todos son administradores de paquetes, ¿correcto?
Pero, ¿cuándo debería usarse cada uno?
Además, cada uno parece tener un archivo json que lo acompaña, ¿almacena esto todos los paquetes que necesita para que puedan instalarse por línea de cmd? ¿Por qué necesitas este archivo?
NPM - Administrador de paquetes para nodejs. Es el registro de software más grande del mundo. Los desarrolladores de código abierto de todos los continentes usan npm para compartir y tomar prestados paquetes. Los paquetes están estructurados para permitirle realizar un seguimiento de las dependencias y las versiones.
Bower - Administrador de paquetes para proyectos web front-end. Bower puede administrar componentes que contienen HTML, CSS, JavaScript, fuentes o incluso archivos de imágenes. Bower no concatena ni minimiza el código ni hace nada más: simplemente instala las versiones correctas de los paquetes que necesita y sus dependencias. También es un paquete npm. Por lo tanto, se puede instalar a través de npm.
npm install bower
Composer - Composer es una herramienta para la administración de dependencias en PHP. No es un administrador de paquetes en el mismo sentido que Yum o Apt. Se trata de paquetes o bibliotecas, pero los gestiona por proyecto, instalándolos en un directorio dentro de su proyecto. Por defecto no instala nada globalmente. Por lo tanto, es un administrador de dependencia.
Una historia de dos administradores de paquetes: compositor y NPM
Aquí hay una aplicación que ayudará a diferenciar a estos administradores de paquetes. Demuestra cómo una aplicación puede aprovechar varios administradores de paquetes al mismo tiempo.
npm
es el administrador de paquetes nodejs. Por lo tanto, se dirige a los entornos de nodojs, lo que generalmente significa proyectos de nodos del lado del servidor o proyectos de línea de comandos (el propio bower es un paquete npm). Si vas a hacer algo con nodejs, entonces vas a usar npm.
bower
es un administrador de paquetes que apunta a proyectos web (front-end). Necesita npm y nodejs para instalar bower y ejecutarlo, aunque los paquetes bower no están destinados específicamente para nodejs, sino para el entorno "browser".
composer
es un administrador de dependencias que se enfoca en proyectos php. Si estás haciendo algo con Symfony (o php antiguo normal), este es probablemente el camino a seguir
Resumiendo:
- haciendo nodo? haces npm
- haciendo php? intentar compositor
- front-end javascript? prueba bower
Y sí, los archivos "json" describen la información básica del paquete y las dependencias. Y sí, son necesarios.
Ahora, ¿qué hay de los README? :-)