2014-04-07 13 views
75

Kann mir jemand den Unterschied zwischen NPM, Bower und Composer erklären.NPM/Bower/Composer - Unterschiede?

Sie sind alle Paketmanager - richtig?

Aber wann sollte jeder verwendet werden?

Auch scheint jeder eine json-Datei, die es begleitet, speichert dies alle Pakete, die Sie benötigen, damit sie von cmd Zeile installiert werden können? Warum brauchst du diese Datei?

Antwort

160

npm ist Nodejs Paketmanager. Es zielt daher auf Nodejs-Umgebungen ab, was normalerweise serverseitige Nodejs-Projekte oder Command-Line-Projekte bedeutet (Bower selbst ist ein npm-Paket). Wenn Sie mit nodejs etwas machen wollen, dann benutzen Sie npm.

bower ist ein Paket-Manager, der (Front-End) Web-Projekte zielt. Sie benötigen npm und nodejs, um Bower zu installieren und auszuführen, obwohl bower-Pakete nicht speziell für nodejs gedacht sind, sondern eher für die "Browser" -Umgebung.

composer ist ein Abhängigkeitsmanager, der auf PHP-Projekte abzielt. Wenn Sie etwas mit symfony (oder plain old php) tun, ist dies wahrscheinlich die Art und Weise

es zu gehen Zusammengefasst:

  • tun Knoten? Sie tun npm
  • tun PHP? versuchen, Komponist
  • Front-End-Javascript? versuchen Bower

Und ja, die "JSON" Dateien beschreiben grundlegende Paketinformationen und Abhängigkeiten. Und ja, sie werden benötigt.

Nun, was ist mit den READMEs? :-)

+5

Was ist mit php + frontent-Anwendungen? Was ist die beste Option? – sompylasar

+14

Hängt davon ab, wo Sie die Linie zeichnen. Ist deine MVC in js (und dein PHP ist auf einen WS reduziert)? Dann wahrscheinlich Bower verwenden. Ist Ihre MVC in PHP (sagen wir, Symfony), und Sie haben eine Reihe von js in Ihre Server-Seitenansichten gehakt? Dann ist Komponist wahrscheinlich Ihre beste Wahl. –

+0

@MangledDeutz können Sie also mit dem Composer JavaScript-Bibliotheken verwalten? – PhoneixS

0

NPM - Package Manager für NodeJS. Es ist das weltweit größte Softwareregister. Open-Source-Entwickler aus allen Kontinenten nutzen npm zum Teilen und Ausleihen von Paketen. Pakete sind so strukturiert, dass Sie Abhängigkeiten und Versionen verfolgen können.

Bower - Paketmanager für Front-End-Webprojekte. Bower kann Komponenten verwalten, die HTML, CSS, JavaScript, Schriftarten oder sogar Bilddateien enthalten. Bower verkettet oder verkürzt den Code nicht und tut nichts anderes - es installiert einfach die richtigen Versionen der Pakete, die Sie brauchen und deren Abhängigkeiten. Es ist auch ein NPM-Paket. So kann es über npm installiert werden.

npm install bower 

Composer - Composer ist ein Tool für die Verwaltung von Abhängigkeiten in PHP. Es ist kein Paketmanager im selben Sinne wie Yum oder Apt. Es behandelt Pakete oder Bibliotheken, verwaltet sie jedoch pro Projekt und installiert sie in einem Verzeichnis innerhalb Ihres Projekts. Standardmäßig wird nichts global installiert. Daher ist es ein Abhängigkeitsmanager.

A Tale of Two Package Managers: Composer and NPM

Difference between Bower and NPM

Hier ist an app, die diese Paketmanager unterscheiden helfen. Es zeigt, wie eine Anwendung mehrere Paketmanager gleichzeitig nutzen kann.