¿En qué se diferencia Twitter Bower de NPM?

npm se usa principalmente para node.js del lado del servidor (el nombre es ‘Node Package Manager’), pero también se puede usar para front-end. Bower fue creado principalmente para la gestión de dependencias front-end.

Una gran diferencia es que npm usar un árbol de dependencia anidado , mientras que Bower usa un árbol de dependencia plano .

Con un árbol de dependencias anidado, las dependencias pueden tener sus propias dependencias, etc. (en otras palabras, entre las dependencias puede haber múltiples versiones de la misma biblioteca). Un árbol plano es, bueno, plano. El usuario debe resolver cualquier conflicto.

Ambos tienen mérito, pero generalmente se desea un árbol plano para las cosas del navegador (tres versiones diferentes de jQuery en una sola aplicación ocupan un espacio adicional). En el servidor, el espacio es un problema menor, por lo que la comodidad de un árbol de dependencias anidado es agradable.

NPM es el administrador de paquetes canónico para Nodejs. Aunque muchas bibliotecas populares se pueden usar cada vez más tanto dentro del navegador como dentro de Node, npm es parte integrante del cinturón de herramientas para crear aplicaciones de Node.

Bower, por otro lado, está destinado a administrar sus paquetes y bibliotecas frontend para su uso directo en el navegador, manteniendo versiones y dependencias para su interfaz de usuario. Bower está destinado a la interfaz.

Para ser honesto, los dos tienen una tonelada de intersección y es concebible que eventualmente puedan usarse de manera intercambiable con algunos violines (especialmente Node). Esa es la naturaleza de hacia dónde se dirige JS en general, con suerte se convertirá en un idioma para gobernarlos a todos. La diferencia es principalmente el objetivo de enfoque / misión de estos respectivos administradores de paquetes.

use npm para los departamentos frontales