webentwicklung-frage-antwort-db.com.de

NPM / Bower / Composer - Unterschiede?

Kann mir jemand den Unterschied zwischen NPM, Bower und Composer erklären.

Sie sind alle Paketmanager - richtig?

Aber wann sollte jeder verwendet werden?

Außerdem scheint jeder eine JSON-Datei zu haben. Speichert diese alle Pakete, die Sie benötigen, damit sie von cmd line installiert werden können? Warum brauchen Sie diese Datei?

92
panthro

npm ist der Paketmanager von nodejs. Es zielt daher auf NodeJs-Umgebungen ab, was normalerweise serverseitige NodeJs-Projekte oder Befehlszeilenprojekte bedeutet (Bower selbst ist ein npm-Paket). Wenn Sie irgendetwas mit nodejs machen wollen, dann werden Sie npm verwenden.

bower ist ein Paketmanager, der auf (Front-End-) Webprojekte abzielt. Sie benötigen npm und nodejs, um bower zu installieren und auszuführen, obwohl bower-Pakete nicht speziell für nodejs gedacht sind, sondern für die "Browser" -Umgebung.

composer ist ein Abhängigkeitsmanager, der auf PHP-Projekte abzielt. Wenn Sie etwas mit Symfony (oder einfach altem PHP) machen, ist dies wahrscheinlich der richtige Weg

Zusammenfassend:

  • knoten zu tun? du machst npm
  • pHP machen? versuche Komponist
  • front-End-Javascript? Versuch es mit Laube

Und ja, die "json" -Dateien beschreiben grundlegende Paketinformationen und Abhängigkeiten. Und ja, sie werden gebraucht.

Was ist nun mit den READMEs? :-)

[Update, vier Jahre später]

  • bower ist veraltet und sollte nicht mehr für neue Projekte verwendet werden. Es wurde größtenteils in das Knotenabhängigkeitsmanagement integriert (von der Website: "Während Bower gewartet wird, empfehlen wir die Verwendung von Yarn und Webpack oder Parcel für Front-End-Projekte").
  • yarn ist als besseres npm aus dem Holz gekommen (Behebung einiger von npm Fehlern), und dies ist wirklich das, was Sie jetzt verwenden sollten, da es das neue De- Fakto-Standard, wenn Sie Front-End- oder Node-Entwicklung durchführen. Es verbraucht das gleiche package.json als npm und ist damit fast vollständig kompatibel.
  • Ich würde composer an dieser Stelle nicht verwenden (weil ich php nicht verwenden würde), obwohl es noch lebendig und beliebt zu sein scheint
180
Mangled Deutz

NPM - Paketmanager für nodejs. Es ist die weltweit größte Software-Registry. Open-Source-Entwickler aus allen Kontinenten verwenden npm, um Pakete freizugeben und auszuleihen. 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 verkleinert keinen Code und unternimmt nichts anderes - es installiert nur die richtigen Versionen der Pakete, die Sie benötigen, und deren Abhängigkeiten. Es ist auch ein npm-Paket. So kann es per npm installiert werden.

  npm install bower

Composer - Composer ist ein Tool für das Abhängigkeitsmanagement in PHP. Es ist kein Paketmanager im gleichen Sinne wie Yum oder Apt are. Es handelt sich um Pakete oder Bibliotheken, verwaltet sie jedoch auf Projektbasis und installiert sie in einem Verzeichnis in Ihrem Projekt. Standardmäßig wird nichts global installiert. Daher ist es ein Abhängigkeitsmanager.

Eine Geschichte von zwei Paketmanagern: Composer und NPM

nterschied zwischen Bower und NPM

Hier ist eine App , um diese Paketmanager zu unterscheiden. Es wird gezeigt, wie eine Anwendung mehrere Paketmanager gleichzeitig nutzen kann.

2