2014-04-07 16 views
75

Czy ktoś może mi wyjaśnić różnicę między NPM, Bower i Composer.NPM/Bower/Composer - różnice?

Wszystkie są menedżerami pakietów - poprawne?

Ale kiedy należy użyć każdego z nich?

Ponadto, każdy z nich ma plik json, który mu towarzyszy, czy przechowuje wszystkie potrzebne pakiety, aby można je było zainstalować za pomocą wiersza cmd? Dlaczego potrzebujesz tego pliku?

Odpowiedz

160

npm jest menedżerem pakietów nodejs. Dlatego też jest ukierunkowany na środowiska nodejs, co zwykle oznacza projekty po stronie serwera lub projekty wiersza poleceń (sama altówka to pakiet npm). Jeśli zamierzasz zrobić coś z nodejs, to użyjesz npm.

bower to menedżer pakietów, który ma na celu (front-end) projekty internetowe. Aby zainstalować altanę i potrzebujesz jej, potrzebujesz npm i nodejs, choć pakiety altana nie są przeznaczone specjalnie dla nodejs, ale raczej dla środowiska "przeglądarki".

composer to menedżer zależności, który kieruje do projektów php. Jeśli robisz coś z symfony (lub zwykły stary php), to jest prawdopodobne, że droga

Reasumując:

  • robi węzeł? robisz npm
  • robi php? spróbuj kompilator
  • front-end javascript? spróbuj altanka

I tak, pliki "json" opisują podstawowe informacje o pakiecie i zależności. I tak, są one potrzebne.

Co z README? :-)

+5

Co z aplikacjami php + frontent? Jaka jest najlepsza opcja? – sompylasar

+14

Zależy, gdzie narysujesz linię. Czy twój MVC jest w js (a twój php jest zredukowany do WS)? Wtedy prawdopodobnie użyjesz altany. Czy twój MVC jest w php (powiedzmy, symfony), a ty masz paczkę js podłączonych do widoków po stronie serwera? Wtedy kompozytor jest prawdopodobnie najlepszym wyborem. –

+0

@MangledDeutz, więc czy możesz używać kompozytor do zarządzania bibliotekami javascript? – PhoneixS

0

NPM - menedżer pakietów dla nodejs. To największy na świecie rejestr oprogramowania. Deweloperzy open-source z każdego kontynentu używają npm do współdzielenia i pożyczania pakietów. Pakiety są skonstruowane tak, aby umożliwić śledzenie zależności i wersji.

Bower - Menedżer pakietów dla frontowych projektów internetowych. Bower może zarządzać komponentami zawierającymi HTML, CSS, JavaScript, czcionki, a nawet pliki graficzne. Bower nie łączy ani nie minimalizuje kodu ani nie robi niczego innego - po prostu instaluje odpowiednie wersje pakietów, których potrzebujesz i ich zależności. Jest to również pakiet npm. Tak więc można go zainstalować przez npm.

npm install bower 

Composer - Composer jest narzędziem do zarządzania zależnościami w PHP. To nie jest menedżer pakietów w tym samym znaczeniu, co Yum lub Apt. Zajmuje się pakietami lub bibliotekami, ale zarządza nimi na podstawie poszczególnych projektów, instalując je w katalogu wewnątrz projektu. Domyślnie nie instaluje niczego globalnie. Tak więc jest to menedżer zależności.

A Tale of Two Package Managers: Composer and NPM

Difference between Bower and NPM

Oto an app które pomogą odróżnić tych menedżerów pakietów. Pokazuje, w jaki sposób aplikacja może jednocześnie korzystać z kilku menedżerów pakietów.