npm
es el administrador de paquetes de nodejs. Por lo tanto, se dirige a entornos de nodejs, lo que generalmente significa proyectos de nodejs del lado del servidor o proyectos de línea de comandos (bower en sí es un paquete npm). Si va a hacer algo con nodejs, entonces 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 de bower no están diseñados específicamente para nodejs, sino para el entorno de "navegador".
composer
es un administrador de dependencias que se enfoca en proyectos php. Si estás haciendo algo con Symfony (o php antiguo), probablemente este sea el camino a seguir.
Resumiendo:
- haciendo nodo? tu haces npm
- haciendo php? prueba el compositor
- javascript de front-end? prueba bower
Y sí, los archivos "json" describen las dependencias y la información básica del paquete. Y sí, son necesarios.
Ahora, ¿qué pasa con los READMEs? :-)
[actualización, cuatro años después]
bower
está en desuso y no debería usarse más para nuevos proyectos. En gran medida, se ha incluido en la gestión de dependencias de nodos (de su sitio web: "Mientras se mantiene Bower, recomendamos usar Yarn y Webpack o Parcel para proyectos front-end").
yarn
salió de la madera como un mejor npm
(solucionando varios npm
defectos), y esto es realmente lo que debe usar ahora, ya que es el nuevo estándar de facto si está haciendo desarrollo de front-end o de nodos. package.json
Consume lo mismo que npm y es casi totalmente compatible con él.
- No lo usaría
composer
en este punto (porque no lo usaría php
), aunque parece que todavía está vivo y es popular.