НПМ / Бауер / Композитор - відмінності?


102

Може хто - небудь пояснити мені різницю між NPM, Bowerі Composer.

Вони всі менеджери пакунків - правильно?

Але коли кожен слід використовувати?

Крім того, кожен з них має файл json, який супроводжує його, чи зберігає всі необхідні вам пакунки, щоб вони могли бути встановлені строкою cmd? Для чого потрібен цей файл?

Відповіді:


192

npmє менеджером пакунків nodejs. Тому він орієнтований на середовища nodejs, що зазвичай означає проекти nodejs на стороні сервера або проекти командного рядка (bower сам є пакетом npm). Якщо ви збираєтеся робити що-небудь з nodejs, тоді ви збираєтеся використовувати npm.

bowerє менеджером пакетів, який спрямований на (передній) веб-проекти. Вам потрібні npm та nodejs, щоб встановити bower та виконати його, хоча пакети bower призначені не для nodejs, а для середовища "браузера".

composerє менеджером залежності, який націлений на PHP-проекти. Якщо ви щось робите з symfony (або звичайним старим php), це, ймовірно, шлях

Підсумовуючи це:

  • робити вузол? ви робите npm
  • робити php? спробуйте композитор
  • фронтальний javascript? спробуйте бауер

І так, файли "json" описують основну інформацію про пакунки та залежності. І так, вони потрібні.

Тепер, що з README? :-)

[оновлення, через чотири роки]

  • bowerзастаріла і більше не повинна використовуватися для нових проектів. Значною мірою він був підпорядкований управлінню залежностей від вузлів (з їх веб-сайту: "Поки Bower підтримується, ми рекомендуємо використовувати пряжу та веб-пакет або посилку для передових проектів").
  • yarnВийшло з дерева як краще npm(виправлення декількох npmнедоліків), і це дійсно те, що вам слід використовувати зараз, оскільки це новий стандарт де-факто, якщо ви займаєтеся розробкою переднього або вузла. Він споживає те саме package.json, що і npm, і майже повністю сумісний з ним.
  • Я б не користувався composerна даний момент (тому що я б не користувався php), хоча, здається, він все ще живий і популярний

6
Що про програми php + frontent? Який найкращий варіант?
сомпіласар

14
Залежить, де ви проведете лінію. Ваш MVC в js (а ваш PHP зменшений до WS)? Тоді швидше за все скористайтеся бауером. Ваш MVC в php (скажімо, symfony), і у вас є куча js, підключена до подання з боку вашого сервера? Тоді композитор, ймовірно, ваш найкращий вибір.
Mangled Deutz

21
Найбільш дратівливий і контрпродуктивний склад - це коли ти працюєш у бібліотеках, де деякі користуються лише шаром; деякі використовують тільки композитор, а інші використовують лише npm. Було б добре знайти єдиного менеджера пакунків, який однією командою обробляє всі ці менеджери пакунків. Це слід назвати початком.
Angel S. Moreno

29
Я думаю, що @ AngelS.Moreno має рацію. Занадто багато можливостей зробити четверту. :)
Ерік

1
@ AngelS. Занадто багато всього. Занадто багато бібліотек JS, які роблять те саме, занадто багато PHP фреймів тощо. Якби люди могли просто співпрацювати над одним, це змінило б життя для багатьох із нас.
Дж. Ештіот
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.