npm
это менеджер пакетов nodejs. Поэтому он нацелен на среды nodejs, что обычно означает серверные проекты nodejs или проекты командной строки (сам bower является пакетом npm). Если вы собираетесь что-либо делать с nodejs, вы собираетесь использовать npm.
bower
- это менеджер пакетов, предназначенный для (интерфейсных) веб-проектов. Вам нужны npm и nodejs для установки и выполнения bower, хотя пакеты bower предназначены не специально для nodejs, а скорее для среды «браузера».
composer
это менеджер зависимостей, предназначенный для проектов php. Если вы что-то делаете с symfony (или простым старым php), это, вероятно, путь
Подводя итоги:
- делаете узел? ты делаешь нпм
- делаете php? попробуйте композитор
- интерфейсный javascript? попробуй беседку
И да, файлы "json" описывают основную информацию о пакете и зависимости. И да, они нужны.
А как насчет README? :-)
[обновление, четыре года спустя]
bower
устарела и больше не должна использоваться для новых проектов. В значительной степени это было включено в управление зависимостями узлов (с их веб-сайта: «Пока Bower поддерживается, мы рекомендуем использовать Yarn и Webpack или Parcel для интерфейсных проектов»).
yarn
вышел из дерева как лучший npm
(исправив несколько npm
недостатков), и это действительно то, что вам следует использовать сейчас, поскольку это новый стандарт де-факто, если вы занимаетесь разработкой интерфейса или узла. Он потребляет то же самое, package.json
что и npm, и почти полностью с ним совместим.
- Я бы не стал использовать сейчас
composer
(потому что не стал бы использовать php
), хотя, похоже, он все еще жив и популярен